gpt4 book ai didi

.net - Web App 获取用户 'NT AUTHORITY\ANONYMOUS LOGON' 的登录失败

转载 作者:行者123 更新时间:2023-12-03 12:06:39 25 4
gpt4 key购买 nike

我看到很多人都遇到了这个错误,但他们的情况似乎都和我的有点不同。

我有一个在 Windows 2003 服务器上的 IIS 6.0 中运行的 ASP.NET 4.0 Web 应用程序。

当我远程到 Web 服务器框并在那里登录并以 身份访问该站点时本地主机 Web 应用程序可以正常工作,而不是按机器名称。但是,当我从另一台客户端计算机访问该网站时,我收到以下错误:

Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

该网站已启用匿名访问 Windows 身份验证。该网络应用程序包含以下内容:
    <authentication mode="Windows">    </authentication>
<identity impersonate="true"/>

<connectionStrings>
<add name="MyConnection" connectionString="Data Source=MyDbServer;Initial Catalog=MyDatabase;Integrated Security=True"
</connectionStrings>

我的 Web 服务器在虚拟服务器上运行。这相关吗?我假设不是。

请注意,如果我在 Impersonation = TRUE 之后在 Web 配置中添加我的域\登录名和密码,则该站点可以正常工作。

最佳答案

听起来您遇到了所谓的“双跳”问题,即不信任服务器将客户端的凭据传递到另一个框(跃点 1 是 IIS 框的凭据,跃点 2 是从 IIS 框到 SQL Server)。
当您直接登录到服务器时,不需要发生第二个跃点,因为它只是将凭据直接从客户端计算机(本场景中的 IIS 服务器)直接传递到 SQL Server。同样,如果 SQL Server 位于 IIS 框上,您也不会出现此错误,因为客户端只会向可以与 IIS 和 SQL Server 共享凭据的框发出一个请求。
要使委派工作需要很多步骤,例如信任委派服务器、创建 SPN 以及确保为 IIS 用于运行网站的帐户提供其他适当的权限。这里有一篇 technet 文章可以帮助您完成许多必需的步骤:
https://docs.microsoft.com/en-us/archive/blogs/taraj/checklist-for-double-hop-issues-iis-and-sql-server
注:如果您使用的是 NTLM 而不是 Kerberos(或其他可委托(delegate)协议(protocol)),它将无法工作,因为中间服务器(IIS 服务器)需要一个可以传递的 token 。由于 NTLM 是基于协商的,因此它不会起作用。
2020 年更新:如果您开始再次看到此问题弹出,并且它仅影响 Windows 10 用户或 Windows 2016+ 用户,则可能在您的用户计算机上实现了“Credential Guard”(请参阅​​:https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-requirements)。中断的事情之一是 Kerberos 无约束委派 - 因此,如果您遇到这种情况,您可能需要重新配置中间框(上例中的 IIS 服务器)以使用受约束委派而不是无约束委派。

关于.net - Web App 获取用户 'NT AUTHORITY\ANONYMOUS LOGON' 的登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10957443/

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