1

我正在创建一个 Web 服务,将由世界另一部分的单个客户端使用。我对他们正在使用的技术没有任何知识或控制权,但已被要求

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

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

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

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

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

4

1 回答 1

4

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

您可以按如下方式在 config 中设置绑定。

<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>

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

于 2012-01-12T04:16:18.053 回答