我从公司合作伙伴那里获得了一个wsdl和xsd文件来访问他们的https服务。 我已经安装了客户端证书,并且可以在soapUI中配置安全性后使用SoapUI访问其API。
在.net应用程序中使用API的后续步骤是什么?
我使用svcutil生成了代理。 我已将证书添加到本地计算机和当前用户 - 受信任的根证书颁发机构 证书来自服务提供商,并通过soapUI工作。它不是自签名的。
当我调用服务时,我无法使用权限'WEB_SERVICE_URL:11851'为SSL / TLS建立安全通道。
我是否需要在配置文件中配置https或我缺少什么?
谢谢
答案 0 :(得分:0)
原来我必须在代码中指定证书
// Create the binding.
BasicHttpBinding customerBinding = new BasicHttpBinding();
customerBinding.Security.Mode = BasicHttpSecurityMode.Transport;
customerBinding.Security.Transport.ClientCredentialType =
HttpClientCredentialType.Certificate;
// Create the endpoint address. Note that the machine name
// must match the subject or DNS field of the X.509 certificate
// used to authenticate the service.
EndpointAddress customerEa = new
EndpointAddress("https:URL_OF_SERVICE:11851/WebServices/GetCustomerDetailsService");
// Create the client.
customerClient = new GetCustomerDetails1Client(customerBinding, customerEa);
// The client must specify a certificate trusted by the server.
customerClient.ClientCredentials.ClientCertificate.SetCertificate(
StoreLocation.CurrentUser,
StoreName.My,
X509FindType.FindBySubjectName,
"CERTIFICATE_NAME");