如何在 C# 中调用需要证书的 Web 服务?

Mar*_*ijn 5 c# web-services certificate visual-studio

我需要与具有.asmxWeb 服务的第三方进行通信。此 Web 服务使用 https。我有所需的证书 (.pfx)。

首次尝试Add Service Reference在 Visual Studio 中添加此服务时,出现错误。我通过将证书导入Personal商店来通过了这个错误。在我这样做之后,我尝试再次添加服务引用并且它起作用了。所以现在我可以创建 Web 服务的实例。好的。

但是现在我想调用该服务。当我这样做时,我收到此错误:

302通知:数字证书丢失

那么如何告诉我的服务使用正确的证书呢?

Mar*_*ijn 8

我最终设法解决了我的问题,如下所示:

var service = new Service1SoapClient();
service.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.TrustedPublisher, X509FindType.FindByIssuerName, "name_of_issuer");
((BasicHttpBinding)service.Endpoint.Binding).Security.Mode = BasicHttpSecurityMode.Transport;
((BasicHttpBinding)service.Endpoint.Binding).Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
Run Code Online (Sandbox Code Playgroud)

请使用Certificate.pfx并使用密码安装。