gpt4 book ai didi

c# - 远程服务模拟显示用户 'NT Authority\Anonymous Logon' 登录失败

转载 作者:太空狗 更新时间:2023-10-29 22:19:12 26 4
gpt4 key购买 nike

当访问数据库时,我有一个我想要的服务 我想访问数据库使用调用身份凭证。

在访问特定数据库之前,我通过以下方式进行模拟

var winId = HttpContext.Current.User.Identity as WindowsIdentity;
var ctx = winId.Impersonate();
//Access Database
ctx.Undo();

当服务在我的 PC 上本地运行时,此方案工作正常。但是,当部署在另一台远程 PC 上时,出现错误:

Login failed for user 'NT Authority\Anonymous Logon"

一旦它尝试访问数据库。

DBAdmin 告诉我 SQL Server 有一个 SPN。

运行服务的账户是域账户。

最佳答案

您最有可能遇到的问题是 Delegation 而不是 Impersonation

我假设在您的生产环境中,您实际上拥有 Web 浏览器、IIS 服务器和 SQL Server 都在不同的机器上。

简单模拟不支持Multi-Hop

要支持Multi-Hop,您需要使用Delegation 设置Kerberos。您将必须在 Active Directory 上设置 SPN 记录。完成后,您还需要为 AD 上的 IIS 机器启用 Delgation

简而言之,委托(delegate)是一大堆蠕虫。

关于c# - 远程服务模拟显示用户 'NT Authority\Anonymous Logon' 登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19701799/

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