客户端app.config创建了传输安全性,即使它未在服务app.config中指定

时间:2011-05-26 14:01:05

标签: wcf

我有一个wsHttpBinding的绑定配置定义为:

 <wsHttpBinding>
    <binding name="CustomAuthentication">
      <security mode="Message">
        <!-- Change to Message-->
        <message clientCredentialType="UserName"/>
        <!-- Change to UserName -->
      </security>
    </binding>
  </wsHttpBinding>

当我使用svcutil生成代理代码并查看它为客户端生成的app.config时,我在安全性部分中看到了这一点:

<security mode="Message">
    <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
                    <message clientCredentialType="UserName"
                             negotiateServiceCredential="true"
                             algorithmSuite="Default" />
</security>

我没有在服务配置中指定传输安全性,所以为什么要使用clientCredentialType =“Windows”创建传输节点。这是设计,是否重要?我观看了一个视频我的Michele Leroux Bustamante,她说你不能使用Transport和Message,它会忽略其中一个,所以如果你指定两个都没关系。我只是想知道为什么它在客户端app.config

中创建它

1 个答案:

答案 0 :(得分:1)

原因可能与svcutil和VS为大多数服务创建巨大的配置文件相同:它们使用默认设置生成绑定/配置,调整它们,然后将它们序列化为配置文件,这意味着你会得到相当广泛的,冗长的配置文件,因为它们包含这些配置对象中所有属性的值(默认或其他)。