0

如何使用 ws 安全性调用 Web 服务(在 java 中创建),他们提供了证书文件、用户名和密码,我尝试使用 Web 服务增强 (WSE) 3.0,从 Microsoft.Web.Services3.WebServicesClientProtocol 继承服务代理使用用户名密码代币

  UsernameToken tocken = new UsernameToken("uname", "pwd");
  Service.RequestSoapContext.Security.Tokens.Add(tocken);

收到错误“底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系。”

是因为客户证书吗?我也试过

 X509Certificate xCert = new X509Certificate();
  xCert = X509Certificate.CreateFromCertFile("certificate_path.cer");
  Service.ClientCertificates.Add(xCert);
4

1 回答 1

0

我解决了这个问题,因为 ssl 证书验证问题,使用

 UsernameToken token = new UsernameToken("uname", "pwd", PasswordOption.SendPlainText);
 Service.RequestSoapContext.Security.Tokens.Add(token);
 System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();           


    public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy
            {
                public TrustAllCertificatePolicy()
                { }

                public bool CheckValidationResult(ServicePoint sp,
                 X509Certificate cert, WebRequest req, int problem)
                {

                    return true;
                }
            }
于 2010-01-28T04:30:34.380 回答