【发布时间】:2019-02-22 18:34:59
【问题描述】:
我在个人以及受信任的根证书颁发机构
下安装了一个证书已尝试使用这段代码发布到端点:
public void Post()
{
try
{
var clientCert = LoadFromStore("MyThumbprint");
var requestHandler = new WebRequestHandler();
requestHandler.ClientCertificates.Add(clientCert);
var client = new HttpClient(requestHandler)
{
BaseAddress = new Uri("https://localhost:44430/")
};
var response = client.GetAsync("api/test").Result;
response.EnsureSuccessStatusCode();
string responseContent = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(responseContent);
}
catch (Exception ex)
{
Console.WriteLine("Exception while executing the test code: {0}", ex.Message);
}
}
经过检查,.ClientCertificate 属性始终为空。
[Route("api/[controller]")]
public class TestController : Controller
{
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
var clientCertInRequest = Request.HttpContext.Connection.ClientCertificate;
if (clientCertInRequest != null) return Ok();
return BadRequest("No certificate found");
}
}
想知道是否有人以前遇到过此问题或知道如何将证书发布到 webapi 端点并能够检索和验证?
非常感谢
【问题讨论】:
标签: c# security asp.net-core-webapi x509certificate x509certificate2