2011-07-06 72 views
1

我正在讀一本書WCF並提出翻過下面的代碼塊的wsHttpBinding配置

<bindings> 
    <wsHttpBinding> 
    <binding name="ProductsServiceWSHttpBindingConfig"> 
     <security mode="TransportWithMessageCredential"> 
     <transport clientCredentialType="None" /> 
     <message clientCredentialType="UserName" /> 
     </security> 
    </binding> 
    </wsHttpBinding> 
</bindings> 

我很困惑與<transport ....><message ...> 我做onlne搜索,並能得出每個含義。但是,不知道這個代碼塊的結果是什麼。提前致謝。

回答

3

當您要爲WsHttpBinding配置安全性時,您首先必須選擇通信的安全方式。由mode配置在安全element

  • None - 無安全性和認證
  • Transport - 通信將在傳輸層進行加密(HTTPS)和驗證將在傳輸電平來完成,以及(通過HTTP標頭)
  • TransportWithMessageCredential - 通信將在傳輸層進行加密(HTTPS)和驗證將在消息級別(波谷標準化SOAP報頭)
  • Message做 - 每個消息將單獨加密並按照WS-Security標準進行簽名並通過HTTP進行發送,並且還將在消息級別進行身份驗證。加密,簽名和認證使用標準化的SOAP頭。

一旦你定義mode你可以使用transportmessage元素,以進一步明確具體mode使用的安全細節。最常見的設置是clientCredentialType,它指定了客戶端如何通過服務進行身份驗證。 transport元素提供HTTP協議中可用的模式,message元素提供由WS-Security指定的模式。

您的配置使用HTTPS和SOAP頭(用戶名令牌)爲服務傳遞用戶名和密碼來定義端點綁定。

+0

這是完美的解釋。所以,我假設Web服務使用Forms Authentication時需要這些設置。 –