我正在创建一个Web服务,该服务将由世界其他地方的单个客户端使用。我对他们正在使用的技术没有任何了解或控制但是被要求
“在传输过程中使用SSL加密消息并使用UsernameToken 用于客户端身份验证“
我打算使用WCF4来创建服务,并且通常知道如何设置这一切。但是我很难找到正确的绑定配置等.Google给了我很多关于WSE 3.0的结果但是我很确定(请纠正我,如果我错了)我不应该将WSE用于WCF服务。
This文章最初似乎建议我应该使用自定义绑定,但后来也说我应该“考虑使用具有适当安全设置的WCF系统定义绑定,而不是创建自定义绑定”。但是,我看不出这应该是什么样的例子。
如果有人能指出我正确的方向,我将不胜感激。
tl; dr :支持SSL和UsernameToken的WCF4配置设置是什么?
答案 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元素的子元素。