C# WCF:使用没有SSL证书的自定义用户名PasswordValidationMode
对于客户,我必须使用WCF在客户机和服务器应用程序之间进行通信 我的应用程序使用WSHttpBinding进行通信,但现在,客户不需要安装任何SSL证书,因为:C# WCF:使用没有SSL证书的自定义用户名PasswordValidationMode,c#,wcf,ssl,wcf-binding,wcf-security,C#,Wcf,Ssl,Wcf Binding,Wcf Security,对于客户,我必须使用WCF在客户机和服务器应用程序之间进行通信 我的应用程序使用WSHttpBinding进行通信,但现在,客户不需要安装任何SSL证书,因为: 服务器只能通过VPN访问,因此通信已经加密 他们的计算机不在域中,因此无法使用域CA 服务器名称没有公共IP,因此他们无法为此IP购买SSL证书 因此,我开始研究如何不使用任何SSL证书,但我遇到了一些问题: 我看到应该为安全模式使用“TransportCredentialOnly”设置,但此设置不适用于“WsHttpBinding
- 服务器只能通过VPN访问,因此通信已经加密
- 他们的计算机不在域中,因此无法使用域CA
- 服务器名称没有公共IP,因此他们无法为此IP购买SSL证书
非常感谢您的帮助。这是非常罕见的情况,发送不安全的用户名和密码是有意义的。您需要对此进行自定义绑定,因为默认绑定不允许这样做。包含两个可以使用的选项。请注意,第一个选项将允许您通过不安全的传输发送纯文本用户名和密码,但它将中断WSDL生成(这是WCF中的一个错误)。自签名证书可以工作吗?WCF服务是如何托管的?IIS?自我托管?@Jason Rowe:不,因为他们无法在每台计算机上添加此功能:(@Yahia:该应用程序托管在WCF应用程序中,我决定使用ClearUsernameBinding(),但我必须修改很多东西才能使其正常工作(它传输很多文件)。令人遗憾的是,MS不允许开发人员决定它需要什么样的安全性,我不明白为什么不使用SSL证书和使用基本身份验证是可能的,如果使用自定义身份验证而不使用SSL的话。应该鼓励开发人员使用SSL,但他应该有一个简单的方法来开发没有SSL的应用程序。