如何使用WCF要求有效的用户名+密码(没有传输安全性)

时间:2009-02-26 20:44:17

标签: wcf

this question类似,我需要能够在没有传输安全性的情况下要求用户名+密码。但在我的情况下,实际的IIS服务器没有SSL,但它前面的代理却没有。

这就是WCF存在问题的地方 - 因为托管它的框不允许没有SSL的此类安全性。所以简而言之 - 我是否需要为此编写自己的绑定,或者在这种情况下我是否错过了某种类型的解决方法?

1 个答案:

答案 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”替换为您的证书名称。