ConfigureServices AddHttpClient, как получить доступ к настраиваемому поставщику сертификатов, который получает сертификат от KeyVault? - PullRequest
0 голосов
/ 08 ноября 2019

Мне нужно зарегистрировать httpclient, который использует мой провайдер конфигурации для получения сертификата. Проблема, с которой я сталкиваюсь, заключается в том, что пользовательский поставщик зарегистрирован в контейнере конфигурации и недоступен до окончания обслуживания .Build(). Мой пользовательский провайдер получает сертификат из хранилища ключей.

Было бы замечательно, если бы здесь был способ указать мой пользовательский провайдер конфигурации в ConfigureServices , а затем загрузить сертификат после * 1008. *.Build()?

Затем я получу доступ к этому клиенту, используя HttpClientFactory.CreateClient("CertificateClient").

Есть ли способ сделать это?

public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpClient("CertificateClient")
        .ConfigurePrimaryHttpMessageHandler(() =>
        {
            var handler = new HttpClientHandler();
            handler.ClientCertificates.Add(??? my custom provider here ???);
            return handler;
        });

    // ...
}
...