连接到服务.net核心的客户端证书

时间:2020-03-27 11:57:14

标签: c# wcf asp.net-core .net-core connected-services

我有一个.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);
        });

任何建议

1 个答案:

答案 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");