【发布时间】:2012-08-08 12:25:20
【问题描述】:
MSDN 上的Here 和here 声明在处理wsHttpBinding 时,传输安全性通过SSL 处理。
在MSDN page about SSL and WCF 中指出,当 ServiceHost 托管在 IIS 中时,ServiceHost 会将 SSL 留给 IIS 处理。
这是否意味着如果binding/securityMode="Transport",任何wsHttpBinding/binding/security/transport/clientCredentialType 值都将被忽略,因为它们的任何选项都不需要设置 SSL 传输?
here 在声明时甚至似乎表达了这种意思
"将安全模式设置为 TransportWithMessageCredential 时, 传输确定提供 传输级安全性。例如,HTTP 协议使用 Secure HTTP (HTTPS) 上的套接字层 (SSL)。因此,设置 任何传输安全对象的 ClientCredentialType 属性(例如 作为 HttpTransportSecurity) 被忽略。换句话说,您只能设置 消息安全对象的 ClientCredentialType(对于 WSHttpBinding 绑定,NonDualMessageSecurityOverHttp 对象)。”
然而here 对于basicHttpBinding 和wsHttpBinding,他们都明确强调如果安全模式设置为传输,请将绑定/传输/clientCredentialType 设置为某些东西(例如:Windows)。
Transport 和 TransportWithMessageCredential 之间的确切区别是什么?
我是不是搞错了,SecurityType 枚举 (None|Message|Transport|Mixed) 不仅是为了隐私,而且是为了对服务器进行身份验证?
如果传输安全性是由 SSL 加密提供的,那么身份验证/授权是如何陷入这个阶段的?
非常感谢您帮助我更好地了解这一切是如何结合在一起的。
【问题讨论】:
-
好问题。糟糕的是没有答案。
标签: wcf security wcf-binding