gpt4 book ai didi

asp.net-core - 如何将客户端证书附加到 AspNetCore TestServer api?

转载 作者:行者123 更新时间:2023-12-02 08:39:52 25 4
gpt4 key购买 nike

我正在查看 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com