我在客户端和服务器上使用此绑定配置:
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
客户端凭据似乎没有像我假设的那样自动传递(或者是吗?),所以我需要知道如何自己设置它们。这甚至会起作用吗?
答案 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安装,我不得不重新启用它。之后它“刚刚奏效”。