小编Mas*_*son的帖子

从HTTP请求访问客户端证书

我正在尝试从HTTP请求访问我的Web API中的客户端证书.我附上证书如下:

X509Certificate2 clientCert = GetClientCertificate();   
HttpWebRequest request  = (HttpWebRequest)WebRequest.Create("https://localhost:44366/test");                        
request.KeepAlive = true;
request.Method = "GET";
request.Accept = "application/json";
request.ClientCertificates.Clear();
request.ClientCertificates.Add(clientCert);
var response = (HttpWebResponse) request.GetResponse();  
Run Code Online (Sandbox Code Playgroud)

在哪里GetClientCertificate()访问本地安装的证书.从我的WebApi内部,我有以下路线:

[HttpGet]
[Route("test")]
public HttpResponseMessage TestNoAuth()
{
    X509Certificate2 cert = Request.GetClientCertificate();
    return cert == null ? Request.CreateResponse(HttpStatusCode.BadRequest, "No cert") : Request.CreateResponse(HttpStatusCode.OK, "Cert attached");
}                                                              
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,cert总会回来null.我是否错误地附加了证书,或者尝试错误地访问它?我已经用这条测试路线创建了一个全新的WebAPI,以确保我们的开发API中没有可能存在冲突的设置.任何帮助将不胜感激.

c# asp.net security x509 mutual-authentication

9
推荐指数
1
解决办法
1800
查看次数

用PHP数组填充JQuery自动完成

我是JavaScript和JQuery的相对noob,但我已经在网上搜索了几个小时来找到这个问题的答案.我正在尝试使用我在PHP中创建的数组填充JQuery自动完成函数.这是数组的片段:

<?php
    $arr = array(
        "Abaddon" => "/BlinkDaggerSounds/abad_blink_01.mp3",
        "Alchemist" => "/BlinkDaggerSounds/alch_blink_01.mp3",
        "Anti Mage" => "/BlinkDaggerSounds/anti_blink_01.mp3",
        "Ancient Apparition" => "/BlinkDaggerSounds/appa_blink_01.mp3",
        "Axe" => "/BlinkDaggerSounds/axe_blink_01.mp3", 
    );
?>
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试运行的脚本:

<script>
    $(function() {

        var availableTags = <?php echo json_encode($arr); ?>

        $( "#auto" ).autocomplete({
            source: availableTags;
        });

    });
</script>
Run Code Online (Sandbox Code Playgroud)

以下是表格:

<form method="post" action="BlinkDaggerQuiz.php" class="answer_box">
    <p>Which hero is it?  <input type="text" id="auto" name="guess" /></p>
</form>
Run Code Online (Sandbox Code Playgroud)

我的头标记:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="BlinkDaggerQuiz.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我错过了什么; 自动填充选项不会显示在文本框中.我也试着取代implode()的json_encode(),但得到了同样的无结果.

javascript php jquery autocomplete

5
推荐指数
1
解决办法
2824
查看次数

在 ac# 字典中引用异步任务

我现在在几个程序中遇到了有关字典中异步任务的问题,我无法解决如何解决它。

我有一个看起来像这样的异步任务:

MessageEventArgs.Channel.SendMessage("somestring");
Run Code Online (Sandbox Code Playgroud)

MessageEventArgs 是我在程序开始时静态声明的第 3 方库中的一个类:

public static MessageEventArgs meargs;
Run Code Online (Sandbox Code Playgroud)

该程序侦听 IRC 通道中的事件并根据文本命令执行操作。我不想为每个命令创建一个巨大的 switch 语句,而是想制作一个将字符串与方法相匹配的字典。并非所有人都只是简单地发送消息,所以我不能只存储要发送的字符串。它看起来像这样:

public static Dictionary<string, Task> myDict= new Dictionary<string, Task>()
{
    {"!example", MessageEventArgs.Channel.SendMessage("HelloWorld") }
}
Run Code Online (Sandbox Code Playgroud)

在 Main() 中,我调用:

MessageReceived += async (s,e) => 
{
     meargs = e;
     await myDict[e.Message.Text];
}
Run Code Online (Sandbox Code Playgroud)

我逐渐意识到,当字典被实例化时,它会尝试调用 SendMessage,因为它是一个异步任务。MessageEventArgs 直到之后才会实例化,因此它会引发异常。有没有办法在字典中存储对这些函数的引用?我找到了使用委托的解决方案,但它们似乎不适用于void方法,并且async方法(据我所知)只能返回void或Task.

提前致谢!

c# task async-await

5
推荐指数
1
解决办法
459
查看次数

向全局对象添加属性

我知道这是一个常见的问题,而且我是一个JS新手,但即使在搜索StackOverflow几个小时后我也完全难过了.

我正在使用Google Maps API,并希望通过与ID关联来跟踪我的标记.所以我有var pinArray = new Object()一个全局变量,并添加这样的标记:

function CreateMarkers (data){              
        data.forEach(function(store) {          
            <!-- CREATE MAP MARKER -->
            var mapLat = store.latitude;
            var mapLong = store.longitude;
            var mapLatLng = { lat: parseFloat(mapLat), lng: parseFloat(mapLong) };                      
            var marker = new google.maps.Marker({
                position: mapLatLng,
                title: store.name,          
                icon: {
                    path: google.maps.SymbolPath.CIRCLE,
                    scale: 8.5,
                    fillColor: 'Green',
                    fillOpacity: 0.8,
                    strokeWeight: 0.6,
                },              
                zIndex: 0   
            });
            cluster.addMarker(marker);
            var key = store.Id;
            pinArray['${key}'] = marker;                        
        })
    }   
Run Code Online (Sandbox Code Playgroud)

哪里cluster是var cluster = new MarkerClusterer(map); …

javascript jquery

5
推荐指数
1
解决办法
85
查看次数

HTML文本输入条件提交

我有一个页面,每次刷新时加载一个随机的MP3文件.用户必须通过文本形式输入基于声音猜测名称.我想检查他们对存储的字符串的输入,并刷新页面,如果它是正确的.否则,我不会给他们一个不正确的警报,并保持在同一页面,以便他们可以再次猜测:

<div class="ui-widget" align="center">
<form method="post" action="" class="answer_box" onsubmit="return submit();">
    <p>Which hero is it?  <input id="tags" name="guess"  /></p>
    <script>
        var key = <?php echo json_encode($rand_key) ?>;
        var info = document.getElementById("guess").value;

        function submit() {
            if (key==info){
                alert('Correct!');
                return true;
            }
            else {
                alert('Incorrect!');
                returnToPreviousPage();
                return false;
            }
        }
    </script>

</form>
</div>
Run Code Online (Sandbox Code Playgroud)

现在,无论输入如何,它都会将信息提交到新页面.javascript警报也没有显示(我怀疑他们确实显示,但页面然后刷新,他们消失).关键变量是PHP数组随机取值的关键,info应该是用户输入的文本.

html javascript php jquery

4
推荐指数
1
解决办法
905
查看次数