我需要注册使用我的自定义配置提供程序的httpclient来获取证书。我面临的问题是自定义提供程序已在configure容器中注册,直到服务 {.Build()
之后才可用。我的自定义提供商从密钥库获取证书。
如果有一种方法可以在 ConfigureServices 中指定我的自定义配置提供程序,然后在 .Build()
之后加载证书,那就太好了吗?< / p>
然后我将使用 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;
});
// ...
}
答案 0 :(得分:0)
由于您可以访问 IServiceCollection,您可能可以通过调用 GetRequiredService<T>()
来获取您的自定义提供程序。如果您有或多或少的标准 Microsoft 安装代码,则您的 IConfigurationRoot
属性也已设置。也许你可以把它传进去。