如何要求一个有效的用户名和密码使用WCF(没有传输安全)
问题描述:
类似this question,我需要能够要求用户名+密码没有传输安全。但在我的情况下,实际的IIS服务器没有SSL,但它前面的代理服务器确实如此。如何要求一个有效的用户名和密码使用WCF(没有传输安全)
这是WCF遇到问题的地方 - 因为托管它的盒子将不允许没有SSL的此类安全性。所以简而言之 - 我是否需要为此编写自己的绑定,还是因为这种情况错过了某种解决方法?
答
是的,如果您需要传递用户名/密码,WCF将需要加密通信。
我认为唯一的方法是创建一个用于安全通信的证书(消息级别的安全性)。您可以轻松地makecert做到这一点,是这样的:
makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=localhostCA -sky exchange -pe
您可能需要授予访问此证书的IIS用户,使用Windows HTTP服务证书配置工具。然后,运行以下命令(假设“ASPNET”是适当的IIS用户):
winhttpcertcfg -g -c LOCAL_MACHINE\My -s localhostCA -a ASPNET
替换“localhostCA”与您的证书的名称。