任何一个知道如何使用HttpClientFactory
时使用客户端证书?在我发现所有的例子,你需要提供在HttpMessageHandler
构造一个HttpClient
,使用HttpClientFactory
时不可用
services.AddHttpClient("NamedClient", client =>
{
var handler = new HttpClientHandler();
X509Certificate2 certificate = GetMyX509Certificate();
handler.ClientCertificates.Add(certificate);
client. // ?? How do I set the handler?
});
我能得到它的帮助工作从@agua来自火星
services.AddHttpClient("myservice", client =>
{
client.BaseAddress = new Uri("https://localhost:8717");
}).ConfigurePrimaryHttpMessageHandler(h =>
{
var handler = new HttpClientHandler();
handler.ClientCertificates.Add(GetCert());
return handler;
});
您在使用HTTP消息处理流水线添加HttpMessageHandler
:
services.AddHttpMessageHandler<HttpClientHandler>()
而你使用注册您的处理程序:
services.AddTransient(provider =>
{
var handler = new HttpClientHandler();
X509Certificate2 certificate = GetMyX509Certificate();
handler.ClientCertificates.Add(certificate);
return handler;
});