我有一个.net core 2 API,其中已经连接了WCF服务(这是电子邮件发件人);
该服务托管在带有HTTPS的IIS上,并且需要SSL;
每当我与电子邮件服务建立连接时,我都希望通过api的客户端证书。
我认为唯一的解决方案是更改reference.cs
文件(这不是最佳实践,我也不知道应该更改什么)
这是我的startup.cs文件;我这样做是因为我想要基于环境的动态网址
services.AddTransient<IEmailService, EmailServiceClient>((serviceProvider) =>
{
var configuration = serviceProvider.GetService<IConfiguration>();
var url = configuration.GetValue<string>("EmailServiceUrl");
return new EmailServiceClient(EmailServiceClient.EndpointConfiguration.WSHttpBinding_IEmailService, url);
});
任何建议
答案 0 :(得分:0)
在Startup.cs中实例化客户端证书后,我已将其添加到ServiceClient中。
client.ClientCredentials.ClientCertificate.SetCertificate(System.Security.Cryptography.X509Certificates.StoreLocation.LocalMachine,
System.Security.Cryptography.X509Certificates.StoreName.My, System.Security.Cryptography.X509Certificates.X509FindType.FindByThumbprint, "thumbprint");