2010-01-26 69 views
0

如何使用ws安全性調用Web服務(用java創建),他們提供了證書文件,用戶名爲&,我嘗試使用Web Services Enhancements(WSE) 3.0,繼承自Microsoft.Web.Services3.WebServicesClientProtocol服務代理使用的用戶名密碼tocken.net調用支持WS-Security的Web服務(在java中創建)

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

遇到錯誤「基礎連接已經關閉:無法爲SSL/TLS安全通道的信任關係。」

是否因爲客戶端證書?我ASLO試圖

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

WSE是老東西WCF是技術,取代它 – 2010-01-26 08:24:55

+0

它不是從問題的哪方面明確使用ws-security。就我所見,您的客戶希望該服務使用HTTPS而不是消息級加密/簽名。如果這是您的情況,請嘗試將證書添加到「可信人員」證書存儲。是的,使用WCF) – 2010-01-26 09:00:02

回答

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; 
       } 
      }