WCF 4 Web服务中的UsernameToken和SSL

时间:2012-01-11 22:21:39

标签: wcf ssl wcf-binding usernametoken

我正在创建一个Web服务,该服务将由世界其他地方的单个客户端使用。我对他们正在使用的技术没有任何了解或控制但是被要求

  

“在传输过程中使用SSL加密消息并使用UsernameToken   用于客户端身份验证“

我打算使用WCF4来创建服务,并且通常知道如何设置这一切。但是我很难找到正确的绑定配置等.Google给了我很多关于WSE 3.0的结果但是我很确定(请纠正我,如果我错了)我不应该将WSE用于WCF服务。

This文章最初似乎建议我应该使用自定义绑定,但后来也说我应该“考虑使用具有适当安全设置的WCF系统定义绑定,而不是创建自定义绑定”。但是,我看不出这应该是什么样的例子。

如果有人能指出我正确的方向,我将不胜感激。

tl; dr :支持SSL和UsernameToken的WCF4配置设置是什么?

1 个答案:

答案 0 :(得分:4)

看看WsHttpBinding。您可以使用TransportWithMessageCredential的安全模式来使用SSL和UserName的消息凭据。如果你在IIS中托管那里设置SSL。

您可以在配置中设置绑定,如下所示。

<bindings>
  <wsHttpBinding>
    <binding name="secureBinding">
      <security mode="TransportWithMessageCredential">
        <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
        <message clientCredentialType="UserName" negotiateServiceCredential="false" establishSecurityContext="false" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

然后您可以按如下方式使用此绑定配置

<services>
  <service name="ServiceName">
    <endpoint address="" binding="wsHttpBinding" contract="ContractType" bindingConfiguration="secureBinding" />
  </service>
</services>

这两个元素都是config中的system.serviceModel元素的子元素。