为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET Core 2.1:将客户端证书添加到已注册的类型化 HTTP 客户端

ASP.NET Core 2.1:将客户端证书添加到已注册的类型化 HTTP 客户端

C#
慕少森 2021-11-28 18:36:03
我介绍了ASP.NET 2.1核心的新方式等中描述的在我的应用程序中创建/注册HTTP客户端在这里。在我需要向键入的 HTTP 客户端添加客户端证书之前,它一直运行良好。我做了很多研究,但我没有找到一种方法来做到这一点..我期待这样的事情:services.AddHttpClient<IMonitoringService, MonitoringService>(            client =>            {                client.BaseAddress = new Uri(this.Configuration.GetSection("ServiceEndpoints:Monitoring").Get<ServiceEndpointConfiguration>().Endpoint);                client.ClientCertificates.Add(new X509Certificate2(/* ... */)); // Error: `ClientCertificates` doesn't exists.            });或者像这样:services.AddHttpClient<IMonitoringService, MonitoringService>(                client => client.BaseAddress = new Uri(this.Configuration.GetSection("ServiceEndpoints:Monitoring").Get<ServiceEndpointConfiguration>().Endpoint))            .AddHttpMessageHandler(                () =>                {                    var handler = new HttpClientHandler();                    handler.ClientCertificates.Add(new X509Certificate2(/* ... */));                    return handler; // Error: Expected return type is `DelegatingHandler`.                });但是这种方式不存在..有没有办法做到这一点?
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

您的经验是正确的AddHttpMessageHandlerDelegatingHandler因为此函数用于扩展请求管道,因此需要返回类型。为了创建HttpClientHandler附加了客户端证书的 ,您应该使用ConfigurePrimaryHttpMessageHandler来创建和返回 的配置实例HttpClientHandler


查看完整回答
反对 回复 2021-11-28
  • 1 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信