我正在读一本关于Wcf的书。当有关于绑定配置的主题时,我总是感到困惑。例如。在一个用于保护互联网环境中的服务的章节中,作者在配置文件中使用了以下代码。
<bindings>
<wsHttpBinding>
<binding name="ProductsServiceWSHttpBindingConfig">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None"/>
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
如书中所述,一切正常。但我在书中没有看到任何描述,为什么使用TransportWithMessageCredential
代替Transport
。同样,<transport ...
None
和<message ...
的原因不是None
。是否有任何矩阵(或任何其他方式来确定)哪些选项可用于哪种绑定(以及在哪种环境中)?我的预感是,某些选项将具有某些约束力。提前谢谢。
答案 0 :(得分:0)
是的,这里有几个:
http://msdn.microsoft.com/en-us/library/ms730879.aspx
http://mkdot.net/blogs/dejan/archive/2008/03/31/wcf-binding-decision.aspx
http://architectopia.blogspot.com/2008/01/wcf-binding-decision-chart.html
答案 1 :(得分:0)
我知道这个问题已经得到了回答,但对于那些寻求快速回答的人来说,这是一些想法。
TransportWithMessageCredential基本上说传输是通过https(安全),用户名和密码将在安全标头中。
“通过将客户端凭据直接放入消息中来执行客户端身份验证。这允许您使用消息安全模式支持的任何凭据类型进行客户端身份验证,同时保持传输安全模式的性能优势。” http://msdn.microsoft.com/en-us/library/aa354508.aspx