C# 无法使用webhttpbinding获取对WCF服务的JSON调用的用户凭据
希望有人能帮忙 我正在使用JSON调用WCF服务,但无法获取用户凭据。C# 无法使用webhttpbinding获取对WCF服务的JSON调用的用户凭据,c#,wcf,json,wcf-binding,wcf-security,C#,Wcf,Json,Wcf Binding,Wcf Security,希望有人能帮忙 我正在使用JSON调用WCF服务,但无法获取用户凭据。 我们正在使用Kerberos,因此IIS的设置如下所示: 服务器端任务: IIS服务器是域的成员 将AD用户和计算机MMC中的IIS服务器计算机帐户设置为“受信任的委派” 必须重新启动IIS服务器,此策略才能生效 必须为站点/虚拟目录选择“仅集成Windows身份验证” IIS不能将NTLM only设置为身份验证方法(这通常不是问题,协商是默认设置,因此除非您专门运行脚本来更改此设置,否则不要担心) IIS服务器名称必须与
我们正在使用Kerberos,因此IIS的设置如下所示: 服务器端任务:
<deny users="?"/>
有什么想法吗?- 你的配置中有这个部分吗
<system.web> <identity impersonate="true"/>
- 您的应用程序池在哪个帐户下运行?(网络服务对吗?)
- 您可能在域上没有重复的SPN李>
在我的“列表”中,只有这些东西在进行集成身份验证时需要检查,您在问题中没有明确提到。希望有帮助?Rihan,谢谢你的快速回复:)我已经试过了。它是否在那里似乎没有任何区别。应用程序池配置为使用域帐户,而不是NetworkService。我确信没有重复的SPN。请注意,尽管我们在IIS中启用了匿名访问。似乎如果我在IIS中关闭它,它就会开始工作。但是,一旦wcf服务重新命名,wcf服务就会表示此服务的安全设置需要“匿名”身份验证,但不会为承载此服务的IIS应用程序启用此身份验证。我相信这是由于我们的其他端点使用wsHttpAuthentication。您的网站上是否设置了连接tiemout?我曾经遇到过一个问题,在设置了HTTP Keep Alives之后,Enable HTTP Keep Alives没有设置,它只是不想工作。听起来好像你已经尝试过了所有的东西,通常是当我认为下面的KB在ISS日志中有任何有用的信息时,在IIS中启用匿名访问,你永远无法得到调用方的凭据,因为它覆盖了集成的安全性和所有其他的安全设置(摘要等等)。。如果您对网站访问的文件应用NTFS安全性,但不向运行应用程序池的用户提供对这些文件的访问权限,但向经过身份验证的用户提供访问权限,会发生什么情况?
<deny users="?"/>
<system.web>
<identity impersonate="true"/>