ASP Core HttpClientFactory 模式使用客户端证书

Zeu*_*s82 5 c# asp.net-core asp.net-core-2.1

有人知道在使用时如何使用客户端证书HttpClientFactory吗?在我发现的所有示例中,您需要HttpMessageHandlerHttpClient构造函数中提供 ,这在使用时不可用HttpClientFactory

        services.AddHttpClient("NamedClient", client =>
        {
            var handler = new HttpClientHandler();
            X509Certificate2 certificate = GetMyX509Certificate();
            handler.ClientCertificates.Add(certificate);
            client. // ?? How do I set the handler?
        });
Run Code Online (Sandbox Code Playgroud)

agu*_*ars 1

HttpMessageHandler您可以使用以下命令在 http 消息处理程序管道中添加:

services.AddHttpMessageHandler<HttpClientHandler>()
Run Code Online (Sandbox Code Playgroud)

然后您使用以下方法注册您的处理程序:

services.AddTransient(provider =>
{
    var handler = new HttpClientHandler();
    X509Certificate2 certificate = GetMyX509Certificate();
    handler.ClientCertificates.Add(certificate);
    return handler;
});
Run Code Online (Sandbox Code Playgroud)