没有 SSL 的 WCF 身份验证

Posted

技术标签:

【中文标题】没有 SSL 的 WCF 身份验证【英文标题】:WCF Authentication WITHOUT SSL 【发布时间】:2010-09-28 11:01:06 【问题描述】:

有没有办法在不实际设置 SSL 证书的情况下设置身份验证(也称为“基本身份验证”)?我也想在 REST 或常规 SOAP WCF 服务中执行此操作,最好是在 REST 中,但希望能够混合这些服务。换句话说,“我希望能够发送一个常规的旧用户名和密码,就像在基本身份验证中一样,但没有 SSL。”有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

使用 TransportCredentialOnly 安全模式。这篇文章解释了如何做到这一点:

http://developers.de/blogs/damir_dobric/archive/2006/07/31/890.aspx.

不要忘记您还必须在 IIS 中启用基本身份验证。

【讨论】:

我猜这只能在 WCF4 中实现,而不是 WCF3-3.5? 我将它与 WCF3.5 一起使用。不过,如果我没记错的话,还是靠运气让它工作起来的。 关于 TransportCredentialOnly 的说明:TransportCredentialOnly 安全模式选项传递用户凭据而不加密或签署消息。请谨慎使用此模式,因为它不会保护正在传输的凭据,并且必须通过其他方式保护它们,例如 Internet 协议安全 (IPSec)。 [来自msdn.microsoft.com/en-us/library/ff648505.aspx] @erikkallen 我已经遵循了这一点并在 IIS express 中启用了基本身份验证,但我仍然收到SOAP header is missing 异常。请问有什么想法吗? 这和WCF4中的None安全模式一样吗?

以上是关于没有 SSL 的 WCF 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

WCF 身份验证错误

WCF 身份验证

WCF 客户端证书身份验证,服务“SslRequireCert”的 SSL 设置与 IIS“Ssl,SslNegotiateCert”的设置不匹配

WCF 身份验证

经过身份验证的服务不支持跨域 javascript 回调。通过 SSL 代理对 WCF 服务的 AJAX 查询

IIS 托管具有 SSL 安全性的 WCF -“HTTP 请求被客户端身份验证方案‘匿名’禁止”错误