我有第三方SOAP Web服務。我需要打電話給它的一個方法。該請求需要簽名。我如何簽署請求?如何使用WCF簽署SOAP請求
回答
我假設簽名意味着您使用安裝在客戶端的證書對消息簽名。
在WCF中這樣做相對容易。假設您在security element中使用wsHttpBinding,則必須將模式設置爲SecurityMode.Message。您還必須將clientCredentialType of the message element設置爲MessageCredentialType.Certificate。
然後,您必須設置端點行爲並配置clientCertificate element(它是clientCredentials element的子項)以指示存儲客戶端證書的位置。
即使您不使用wsHttpBinding,當您想要使用客戶端證書來提供消息級安全性時,對於大多數其他綁定,配置也幾乎相同。
如果您通過HTTPS進行調用,請注意您必須將安全元素上的mode屬性設置爲Mode.TransportWithMessageCredential。
以下是有關使用WCF使用需要簽名的Amazon SOAP服務的問題。我認爲答案給出了一個很好的例子,這可能有助於你的情況。
How to sign an Amazon web service request in .NET with SOAP and without WSE
編輯:有顯然對連結此其他StackOverflow的問題有些混亂。我想指出最高票選出的答案。這絕對是一個WCF解決方案。您會注意到從IClientMessageInspector(WCF接口)繼承的類SigningMessageInspector。我認爲這部分可能會幫助你。
它也不使用WCF來完成。 – casperOne 2010-02-18 21:41:23
@casperOne - 遵循Tim的鏈接,一個大回答說:「我結束了更新代碼以使用WCF ...」。那怎麼不使用WCF? – Ecyrb 2010-02-19 00:31:47
@Tim C:當你發佈鏈接的唯一答案是這樣的:http://stackoverflow.com/questions/1204191/how-to-sign-an-amazon-web-service-request-in-net- with-soap-and-without-wse/1204671#1204671其中絕對沒有WCF解決方案。 – casperOne 2010-02-19 14:24:12
- 1. 使用證書籤署Soap請求
- 2. 從WCF客戶端使用X509簽署SOAP請求
- 3. 如何在Apigee中籤署SOAP請求
- 4. WCF SOAP請求中的兩個簽名
- 5. SOAP請求標籤
- 6. 如何控制哪些元素在WCF SOAP請求中籤名?
- 7. 簽名JAX-WS SOAP請求
- 8. WSE2到WCF:簽署SOAP消息
- 9. 如何使用soapui發送SOAP請求
- 10. 如何使用SOAPpy進行SOAP請求?
- 11. 使用Coldfusion簽署API請求
- 12. 使用AFNetworking 2.0簽署API請求
- 13. 使用HMAC-SHA1簽署oAuth請求
- 14. 如何簽署請求令牌?
- 15. 如何打印soap請求(請求使用php curl發送)?
- 16. SOAP請求/響應/使用
- 17. 使用PHP的SOAP請求
- 18. 使用groovy的SOAP請求
- 19. 使用PHP的SOAP請求
- 20. 使用PHP的SOAP請求
- 21. 使用nodejs的SOAP請求
- 22. #Body的指定參考URI,而數字簽名的SOAP請求 - 使用WCF
- 23. WCF&SOAP Headers - 如何確保默認標題元素未在請求中籤名?
- 24. 如何在Java中使用X.509證書籤署HTTP請求?
- 25. 如何使用aws憑證安全地簽署請求?
- 26. 如何使用Kentor SAML2令牌簽署請求
- 27. 如何使用java API簽署X509證書請求?
- 28. 如何使用訪問令牌來簽署POST請求?
- 29. 如何像SOAP UI請求一樣從android構建SOAP請求?
- 30. 如何在SOAP請求
你說得對,我正在談論簽署請求的請求,並附上一張坐在發出請求的機器上的證書。 – 2010-02-18 22:10:31
我正在使用basicHttpBinding,因爲多數民衆贊成什麼實用工具默認生成,我把它切換到wsHttpBinding只需在web.config中替換它。當我提出請求時,我收到錯誤消息:「請求已中止:無法創建SSL/TLS安全通道。」 – 2010-02-18 22:38:18
@Mr Bell:您應該能夠使用相同的屬性在basicHttpBinding上設置安全模式。 – casperOne 2010-02-18 23:01:22