WCF:使用不带SSL证书的自定义UserNamePasswordValidationMode

时间:2011-09-05 05:22:47

标签: c# wcf ssl wcf-binding wcf-security

对于客户,我将使用WCF在客户端和服务器应用程序之间进行通信。

我的应用程序使用WSHttpBinding进行通信,但现在,客户不会安装任何SSL证书,因为:

  • 服务器只能访问VPN,因此通信已加密
  • 他们的计算机不在域中,因此他们无法使用域CA
  • 服务器名称没有公共IP,因此无法为此IP购买SSL证书

所以我开始看看如何不使用任何SSL证书,但我遇到了一些问题:

我看到我应该为安全模式使用“TransportCredentialOnly”设置,但此设置不适用于“WsHttpBinding”。所以我决定使用basicHttpBinding,它有这个选项,但似乎basicHttpBinding不提供使用CustomUserNamePasswordValidator的可能性。

那我该怎么做呢?我找到的每个搜索结果都使用SSL证书或没有customUserNameValidator。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这是非常罕见的情况,发送不安全的用户名和密码是有意义的。您需要自定义绑定,因为默认绑定不允许这样做。 This answer包含两个您可以使用的选项。请注意,第一个选项将允许您通过不安全的传输发送纯文本用户名和密码,但它会破坏WSDL生成(这是WCF中的错误)。