我正在阅读一本wcf书,并且涉及以下代码块
<bindings>
<wsHttpBinding>
<binding name="ProductsServiceWSHttpBindingConfig">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
我对<transport ....>
和<message ...>
感到困惑
我做了onlne搜索,并能够得出每个的含义。但是,不确定这个代码块的结果是什么。提前谢谢。
答案 0 :(得分:3)
当您要为WsHttpBinding
配置安全性时,首先必须选择如何保护通信。这是由安全mode
中的element
配置的:
None
- 没有安全和身份验证Transport
- 通信将在传输级别(HTTPS)上加密,身份验证也将在传输级别上完成(通过HTTP标头)TransportWithMessageCredential
- 通信将在传输级别(HTTPS)上加密,并且将在消息级别(通过标准化SOAP标头)进行身份验证。Message
- 每条消息将按照WS-Security标准单独加密和签名,并通过HTTP发送,并且身份验证也将在消息级别完成。加密,签名和身份验证使用标准化的SOAP标头。定义mode
后,您可以使用transport
和message
元素进一步指定特定mode
中使用的安全性详细信息。最常见的设置是clientCredentialType
,它指定客户端如何通过服务进行身份验证。 transport
元素提供HTTP协议中可用的模式,以及WS-Security指定的message
元素提供模式。
您的配置使用HTTPS和SOAP标头(UserName Token)定义端点绑定,以便将用户名和密码传递给服务。