我正在尝试从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中没有可能存在冲突的设置.任何帮助将不胜感激.
我是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(),但得到了同样的无结果.
我现在在几个程序中遇到了有关字典中异步任务的问题,我无法解决如何解决它。
我有一个看起来像这样的异步任务:
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.
提前致谢!
我知道这是一个常见的问题,而且我是一个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); …
我有一个页面,每次刷新时加载一个随机的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应该是用户输入的文本.
javascript ×3
jquery ×3
c# ×2
php ×2
asp.net ×1
async-await ×1
autocomplete ×1
html ×1
security ×1
task ×1
x509 ×1