2012-07-16 66 views
2

我使用的客户端和服务器这样绑定配置:basicHttpBinding的与TransportWithMessageCredential和clientCredentialType =“视窗”

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

客户端凭证似乎不能自动地通过(或者是他们?)这样,像我假定,所以我需要知道如何自己设置它们。这甚至会起作用吗?

回答

3

您必须启用Windows身份验证IIS。看看下面的链接,了解如何做到这一点。

另外,我检查了MSDN网站,你的配置之间和MSDN上的关键的区别是安全模式

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

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

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

- 关闭安全。

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

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

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

TransportWithMessageCredential - 凭据与消息和消息保护和服务器认证通过由传输层提供 。

TransportCredentialOnly - 客户端凭证与传输层一起传递,并且不应用消息保护。

+0

我已经在IIS中激活了Windows身份验证。我甚至无法将服务引用添加到像这样配置的WCF服务。 – UrbanEsc 2012-07-16 11:19:55

+0

如果您将我们的服务配置为使用BasicHttpBinding,那么您将无法添加服务引用,因为通过使用此绑定,实际上并未使用SOAP。对于基于非肥皂的服务,您无法生成元数据 – Anand 2012-07-16 11:22:43

+0

请参阅http://stackoverflow.com/questions/11390594/failed-to-add-a-service-service-metadata-may-not-be-accessible-make -sure-your/11392842#11392842 – Anand 2012-07-16 11:23:20

相关问题