这是什么意思,在高级别上指定一个WCF服务使用Windows身份验证时的DNS身份?例如:使用Windows身份验证具有DNS身份类型意味着什么?
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_ICalculator_Windows">
<security>
<message clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8003/servicemodelsamples/service/dnsidentity"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_ICalculator_Windows"
contract="ICalculator"
name="WSHttpBinding_ICalculator">
<identity>
<dns value="contoso.com" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>
在这种情况下,当客户端接收针对服务的Windows(Kerberos的)凭证,它预计值为contoso.com。
我不太明白这一点。如何将服务的凭证值contoso.com?凭证是什么意思?
它是否也验证服务的实际DNS名称确实是contoso.com?否则,什么会阻止某人编写一个称为contoso.com的流氓WCF服务?
如果您将应用程序池作为“网络服务”运行并在标准HTTP端口上运行服务,则SPN值将自动设置为Kerberos身份验证的正确值。如果您使用自定义服务帐户和/或自定义端口,则需要由域管理员设置新的SPN。加入域的计算机的默认SPN设置是host/server和host/server-fqn。 “主机”服务具有HTTP和别名的别名。 – 2012-01-27 00:44:41