ConfigureServices AddHttpClient如何访问从KeyVault获取证书的自定义证书提供程序?

我需要注册使用我的自定义配置提供程序的httpclient来获取证书。我面临的问题是自定义提供程序已在configure容器中注册,直到服务 {.Build() 之后才可用。我的自定义提供商从密钥库获取证书。

如果有一种方法可以在 ConfigureServices 中指定我的自定义配置提供程序,然后在 .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;
        });

    // ...
}
zhujun1918 回答:ConfigureServices AddHttpClient如何访问从KeyVault获取证书的自定义证书提供程序?

由于您可以访问 IServiceCollection,您可能可以通过调用 GetRequiredService<T>() 来获取您的自定义提供程序。如果您有或多或少的标准 Microsoft 安装代码,则您的 IConfigurationRoot 属性也已设置。也许你可以把它传进去。

本文链接:https://www.f2er.com/3140741.html

大家都在问