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