我試圖使用使用WS安全(usernametoken,簽名和加密)的Web服務。除了wsdl外,我沒有關於網絡服務的任何信息。使用WS-Security使用SOAP Web服務
隨着wsdl.exe,我創建了我的代理類,我也能夠調用Web服務方法。它顯示錯誤
"No signature in message! (from client)"
我如何簽名和加密添加到SOAP Web服務調用?
我試圖使用使用WS安全(usernametoken,簽名和加密)的Web服務。除了wsdl外,我沒有關於網絡服務的任何信息。使用WS-Security使用SOAP Web服務
隨着wsdl.exe,我創建了我的代理類,我也能夠調用Web服務方法。它顯示錯誤
"No signature in message! (from client)"
我如何簽名和加密添加到SOAP Web服務調用?
你應該使用WCF。爲什麼? ASMX Web服務是舊技術,不支持WS-Security。要將WS-Security添加到ASMX,您必須手動執行(需要執行許多非常複雜的規範)或使用WSE。從.NET 3.0開始,ASMX和WSE都被WCF所取代,所以除非你必須使用.NET 2.0,否則你的選擇應該是WCF。
首先嚐試使用svcutil.exe或在Visual Studio中添加服務引用,如果它不爲您創建代理,則將WSDL的安全性部分發布到您的問題。我們可以嘗試幫助您進行配置。
嗨,你的意思是,我應該使用wcf客戶端來使用web服務?我會嘗試使用svcutil.exe ... – waldi 2011-05-02 15:27:22
是的WCF只是較新的技術來創建或使用服務。 – 2011-05-02 15:35:06
我曾嘗試svcutil.exe的,不幸的是我得到一個錯誤 「錯誤:無法導入WSDL:portType的 詳細信息:System.Se rviceModel.Description.DataContractSerializerMessageContractImporter 錯誤:在運行一個WSDL進口延期已引發異常:模式與目標命名空間 '
如果你想使用WS-Security,你需要WCF。
WSE是來自Microsoft的臨時「附加」軟件包,它支持第一版Web服務堆棧上的WS-Security - 使用WSDL.exe的軟件包。我的理解是,WSE不再受支持。
您可能想要發佈app.config和web.config以及您嘗試過的任何其他代碼。你有沒有嘗試過使用soapUI等第三方Web服務調用者? – ColWhi 2011-05-02 14:52:34