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

5

有人知道在使用HttpClientFactory时如何使用客户端证书吗?在我找到的所有示例中,您需要在HttpClient构造函数中提供一个HttpMessageHandler,但在使用HttpClientFactory时不可用。

        services.AddHttpClient("NamedClient", client =>
        {
            var handler = new HttpClientHandler();
            X509Certificate2 certificate = GetMyX509Certificate();
            handler.ClientCertificates.Add(certificate);
            client. // ?? How do I set the handler?
        });
2个回答

3

在 @agua from mars 的帮助下,我成功让它运行起来了。

        services.AddHttpClient("myservice", client =>
        {
            client.BaseAddress = new Uri("https://localhost:8717");
        }).ConfigurePrimaryHttpMessageHandler(h =>
        {
            var handler = new HttpClientHandler();
            handler.ClientCertificates.Add(GetCert());
            return handler;
        });

1
你可以使用以下方法在 HTTP 消息处理程序管道中添加一个 HttpMessageHandler
services.AddHttpMessageHandler<HttpClientHandler>()

"您可以使用以下方式注册处理程序:

"
services.AddTransient(provider =>
{
    var handler = new HttpClientHandler();
    X509Certificate2 certificate = GetMyX509Certificate();
    handler.ClientCertificates.Add(certificate);
    return handler;
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接