2

如果我有以下绑定:

<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 证书以防止用户看到用户名和密码。我知道,一旦我通过身份验证,消息就会被加密。但是密码和用户名也加密了吗?

4

3 回答 3

6

此处的其他答案具有误导性和不正确性,尽管它们可能会通过提及运输安全性来使您放心。正确答案是Windows 身份验证不会以纯文本形式发送密码。

当客户端向服务器保证用户就是他们所说的那个人时,Windows 身份验证起作用。没有密码通过网络传输。

如果您要使用基本身份验证,那么密码将通过网络传输;如果使用任何https传输,则连接会被加密,但在该连接中,消息的内容不会被加密。

请参阅WCF wsHttpBinding 的 Windows 身份验证有多安全?一个类似的问题。

有关 WCF 传输安全的更多信息,请参阅MSDN 消息和传输安全。

于 2012-11-30T05:06:45.550 回答
2

通过线路发送的数据,包含在消息中是纯文本;但是,鉴于正在使用传输安全模式,客户端-服务器通信通过 http 上的 ssl(以及 TCP 情况下的 TLS)来保护。

可以在此处阅读有关 Transport 如何保护通信的更多信息。

但是由于通信双方都不需要理解 xml 级别的安全概念,因此消息的实际 xml 以纯文本形式发送。

编辑:Kirk Broadhurst 是正确的 - 在 Windows 身份验证的情况下,用户名和密码未附加到/存在于消息上,但存在的任何数据都未加密。

于 2012-11-30T04:46:10.813 回答
0

WsHttpBinding 默认加密消息,因此它不会是纯文本。

更多信息在这里

于 2012-11-30T04:32:11.997 回答