这里在 MSDN 上以及在处理时说明wsHttpBinding
,传输安全性是通过 SSL 处理的。
在有关 SSL 和 WCF 的 MSDN 页面上,它指出当 ServiceHost 托管在 IIS 中时,ServiceHost 将 SSL 留给 IIS 处理。
这是否意味着如果binding/securityMode="Transport"
, 任何wsHttpBinding/binding/security/transport/clientCredentialType
值都将被忽略,因为它们的任何选项都不需要设置 SSL 传输?
当它声明时,它甚至似乎在这里说了些什么
“将安全模式设置为 TransportWithMessageCredential 时,传输确定提供传输级安全性的实际机制。例如,HTTP 协议在 HTTP (HTTPS) 上使用安全套接字层 (SSL)。因此,设置任何的 ClientCredentialType 属性传输安全对象(如 HttpTransportSecurity)被忽略。换句话说,您只能设置消息安全对象的 ClientCredentialType(对于 WSHttpBinding 绑定,NonDualMessageSecurityOverHttp 对象)。
然而在这里forbasicHttpBinding
和 for wsHttpBinding
,他们都明确强调如果安全模式设置为 Transport ,请将 binding/transport/clientCredentialType 设置为某些东西(例如:Windows)。
Transport
和之间的确切区别是TransportWithMessageCredential
什么?
而且我的棒子有错误吗,SecurityType
枚举(None|Message|Transport|Mixed
)不仅是为了隐私,而且是为了对服务器进行身份验证?
如果传输安全是由 SSL 加密提供的,那么身份验证/授权是如何陷入这个阶段的呢?
非常感谢您帮助我更好地了解这一切是如何结合在一起的。