gpt4 book ai didi

wcf - WCF客户端指定的 "userPrincipalName"的作用是什么?

转载 作者:行者123 更新时间:2023-12-03 16:28:51 26 4
gpt4 key购买 nike

我创建了具有wsHttpBinding和Message安全性的WCF服务。然后,我添加了一个服务引用,该引用导致使用以下命令更新客户端的配置文件:

<client>
<endpoint address="http://localhost:42160/Service1.svc/secure"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService1"
contract="SecureProxy.IService1" name="WSHttpBinding_IService1">
<identity>
<userPrincipalName value="baria2@mydomain.com" />
</identity>
</endpoint>
</client>

我不明白userPrincipalName的用途。不管我将值修改为什么,客户端和服务都能成功通信。它似乎没有任何作用。

这个 MSDN article试图详细解释其目的,并且以某种方式设法完全不解释。

Microsoft试图通过将其添加到WCF故事中来解决什么问题?同样,我可以将值更改为所需的任何值,并且不会影响客户端和服务。

另外,这是一个 similar question

最佳答案

通常,upn可以向客户端验证服务器的身份(例如,您指示客户端信任哪个服务器,而不信任哪个服务器,例如ssl中的客户端验证主机)。

我认为,如果upn的值正确,则通信将使用kerberos;如果错误,则通信将使用ntlm(如果在某些情况下可用)。尝试禁用ntlm,然后只有正确的upn值才起作用:

<clientCredentials>
<windows allowNtlm="false" />
</clientCredentials>

还有一种方法可以通过在服务器上放置一个断点/日志并检查ServiceSecurityContext.Current来检查是否使用了kerberos或ntlm。您应该根据upn值获得不同的值。

关于wcf - WCF客户端指定的 "userPrincipalName"的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17848013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com