wsHttpBinding配置

时间:2011-07-06 15:43:32

标签: wcf wcf-security

我正在阅读一本wcf书,并且涉及以下代码块

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

我对<transport ....><message ...>感到困惑 我做了onlne搜索,并能够得出每个的含义。但是,不确定这个代码块的结果是什么。提前谢谢。

1 个答案:

答案 0 :(得分:3)

当您要为WsHttpBinding配置安全性时,首先必须选择如何保护通信。这是由安全mode中的element配置的:

  • None - 没有安全和身份验证
  • Transport - 通信将在传输级别(HTTPS)上加密,身份验证也将在传输级别上完成(通过HTTP标头)
  • TransportWithMessageCredential - 通信将在传输级别(HTTPS)上加密,并且将在消息级别(通过标准化SOAP标头)进行身份验证。
  • Message - 每条消息将按照WS-Security标准单独加密和签名,并通过HTTP发送,并且身份验证也将在消息级别完成。加密,签名和身份验证使用标准化的SOAP标头。

定义mode后,您可以使用transportmessage元素进一步指定特定mode中使用的安全性详细信息。最常见的设置是clientCredentialType,它指定客户端如何通过服务进行身份验证。 transport元素提供HTTP协议中可用的模式,以及WS-Security指定的message元素提供模式。

您的配置使用HTTPS和SOAP标头(UserName Token)定义端点绑定,以便将用户名和密码传递给服务。