如果我有以下绑定:
<bindings>
<wsHttpBinding>
<binding name="Binding">
<security mode="Transport">
<message clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
用户名和密码是否可以通过网络以纯文本形式发送?
我知道默认情况下wcf会加密连接。我问这个问题的原因是:
我从http://msdn.microsoft.com/en-us/library/aa354513.aspx
那里得到了所以我的问题是我知道默认情况下连接是加密的。但是,我是否需要ssl证书才能防止用户看到用户名和密码。我知道,一旦我通过身份验证,邮件就会被加密。但是密码和用户名也加密了吗?
答案 0 :(得分:5)
此处的其他答案具有误导性和错误性,尽管他们可能会通过提及运输安全性向您保证。正确答案是 Windows身份验证不会以纯文本格式发送密码。
当客户端向服务器保证用户是他们所声称的用户时,Windows身份验证就会起作用。没有密码通过网络传输。
如果您使用基本身份验证,则密码将通过网络传输;如果使用任何https
传输,则连接已加密,但在该连接中,邮件内容未加密。
请参阅How secure is WCF wsHttpBinding's Windows authentication?类似的问题。
有关WCF传输安全性的更多信息,请参阅MSDN Message and Transport Security。
答案 1 :(得分:1)
通过电汇发送的数据,包含在邮件中的是纯文本;但是,鉴于正在使用传输安全模式,客户端 - 服务器通信通过http(以及TCP的情况下为TLS)通过ssl进行保护。
有关传输如何保护通信的更多信息,请参阅here。
但是因为两个通信方都不需要理解xml级别的安全性概念,所以消息的实际xml是以纯文本形式发送的。
编辑:Kirk Broadhurst是正确的 - 在Windows身份验证的情况下,用户名和密码不会附加到/出现在邮件上,但是任何存在的数据都不会加密。
答案 2 :(得分:0)
WsHttpBinding默认加密消息,因此它不是纯文本。
更多信息here。