使用在不同开发人员计算机上生成的服务客户端访问WCF服务

时间:2011-11-19 22:46:08

标签: wcf security

我与WCF服务上的其他开发人员一起工作

如果服务客户端引用是由其他开发人员生成的,那么在我从SVN更新并尝试运行之后,访问该服务的应用程序将失败,但异常为:

  

该服务未对呼叫者进行身份验证。

     

InnerException消息:
  由于身份验证失败,无法满足安全令牌请求。

我注意到,当客户端引用在其他PC上生成时,在客户端的app.config中我有

<endpoint address="http://MyService.svc/ws"
   binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISqlService"
   contract="OneTestModel.ISqlService" name="WSHttpBinding_ISqlService">
   <identity>
      <servicePrincipalName value="host/alabala" />
   </identity>
</endpoint>

如果我在电脑上生成/更新客户端,我会

      <identity>
        <servicePrincipalName value="host/my-pc-name" />
      </identity>

我可以访问该服务

服务使用wsHttpBinding,其中web.config我有

<bindings>
   <wsHttpBinding>
      <binding name="ConfigBinding">
         <security mode="Message">
            <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true"  algorithmSuite="Default" establishSecurityContext="false" />
         </security>
      </binding>
   </wsHttpBinding>
</bindings>

该服务应该匿名运行。

我应该在服务配置中做哪些更改来忽略客户端<identity>

由于

0 个答案:

没有答案