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