3

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

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

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

4

2 回答 2

4

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

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

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

如您所见,唯一的区别是模式。我不确定这是否会解决您的问题,但请试一试。

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

- 关闭安全性。

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

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

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

TransportWithMessageCredential - 凭据与消息一起传递,消息保护和服务器身份验证由传输层提供。

TransportCredentialOnly - 客户端凭据通过传输层传递,并且不应用消息保护。

于 2012-07-16T11:06:40.093 回答
0

我发现这种行为的原因是我必须重新启用错误的 ASP.NET 4 安装。之后它“刚刚工作”。

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

于 2012-07-18T12:27:13.733 回答