作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在查看 Microsoft 源代码中的 Microsoft.AspNetCore.TestHost.TestServer
。在那里我看到 CreateClient()
属性是 HttpClient
对象。
那么如何在 xUnit Test 中附加数字签名的客户端证书?
HttpClient
示例如下。
var x509Certificate2 = new X509Certificate(); // Pretend it contains certificate data already.
var httpClientHandler = new HttpClientHandler() {
ClientCertificateOptions = ClientCertificateOption.Manual
};
httpClientHandler.ClientCertificates.Add(x509Certificate2);
using (var httpClient = new HttpClient(httpClientHandler))
{
}
现在使用TestServer
var testServer = new TestServer();
testServer.CreateClient(); // How do I attached client certificate here?
那么,我们如何在此处附加客户端证书呢?对于CreateClient()
此外,我可以尝试实现 HttpRequestMessage
,但它也不支持该证书选项。
最佳答案
您可以尝试使用 testServer.SendAsync(...) 方法并从那里构造您的 HttpContext。
var result = await server.SendAsync(context =>
{
context.Connection.ClientCertificate = myClientCertificate;
context.Request.Method = "POST";
});
只需确保根据需要指定路径和正文。
关于asp.net-core - 如何将客户端证书附加到 AspNetCore TestServer api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46609384/
我是一名优秀的程序员,十分优秀!