ASP Core HttpClientFactory Pattern Использование клиента Сертификат - PullRequest
0 голосов
/ 17 сентября 2018

Кто-нибудь знает, как использовать сертификат клиента при использовании 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?
        });

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Мне удалось заставить его работать с помощью @agua от Марса

        services.AddHttpClient("myservice", client =>
        {
            client.BaseAddress = new Uri("https://localhost:8717");
        }).ConfigurePrimaryHttpMessageHandler(h =>
        {
            var handler = new HttpClientHandler();
            handler.ClientCertificates.Add(GetCert());
            return handler;
        });
0 голосов
/ 17 сентября 2018

Вы добавляете HttpMessageHandler в конвейер обработчика сообщений http, используя:

services.AddHttpMessageHandler<HttpClientHandler>()

И регистрируете свой обработчик, используя:

services.AddTransient(provider =>
{
    var handler = new HttpClientHandler();
    X509Certificate2 certificate = GetMyX509Certificate();
    handler.ClientCertificates.Add(certificate);
    return handler;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...