BasicHttpBinding与TransportWithMessageCredential和clientCredentialType =“Windows”

时间:2012-07-16 10:05:16

标签: wcf windows-authentication basichttpbinding

我在客户端和服务器上使用此绑定配置:

<basicHttpBinding>
    <binding name="BasicHttpBinding_IService1">
        <security mode="TransportWithMessageCredential">
            <transport clientCredentialType="Windows" />
        </security>
    </binding>
</basicHttpBinding>

客户端凭据似乎没有像我假设的那样自动传递(或者是吗?),所以我需要知道如何自己设置它们。这甚至会起作用吗?

2 个答案:

答案 0 :(得分:4)

您必须在 IIS 上启用 Windows身份验证。请查看以下链接以了解如何操作。

另外,我检查了MSDN网站,您的配置与msdn之间的密钥区别是安全模式

<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpEndpointBinding">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

唯一的区别是你可以看到的模式。我不确定这会解决你的问题但是试一试。

以下是所有“服务绑定”中的5种可能的“安全模式”。

  

- 关闭安全性。

     

传输 - 使用“传输安全性”进行相互身份验证和邮件保护。

     

消息 - 使用“消息安全性”进行相互身份验证和邮件保护。

     

两者 - 允许您提供传输和消息级安全性设置(仅MSMQ支持此设置)。

     

TransportWithMessageCredential - 凭据消息传递凭据并提供消息保护和服务器身份验证   通过传输层。

     

TransportCredentialOnly - 客户端凭据与传输层一起传递,不会应用任何邮件保护。

答案 1 :(得分:0)

我发现这种行为的原因是一个错误的ASP.NET 4安装,我不得不重新启用它。之后它“刚刚奏效”。

http://msdn.microsoft.com/en-us/library/k6h9cz8h.aspx