我正在创建一个web服务,该服务将由世界另一个地方的单个客户端使用。我对他们正在使用的技术没有任何了解或控制,但被要求进行
"在传输过程中使用SSL加密消息,并使用UsernameToken用于客户端身份验证"
我计划使用WCF4来创建服务,并大致了解如何设置这一切。然而,我很难找到绑定等的正确配置。谷歌给了我很多关于WSE 3.0的结果,但我很确定(如果我错了,请纠正我),我不应该将WSE用于WCF服务。
这篇文章最初似乎建议我应该使用自定义绑定,但后来也说我应该"考虑使用具有适当安全设置的WCF系统定义的绑定,而不是创建自定义绑定"。然而,我看不到任何应该是什么的例子。
如果有人能为我指明正确的方向,我将不胜感激。
tl;dr:支持SSL和UsernameToken的WCF4配置设置是什么?
查看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>
这两个元素都是config中system.serviceModel元素的子元素。