[应用程序池使用域帐户运行时,IIS模拟无法正常工作

问题描述 投票:1回答:1

我有一个在Windows Intranet环境中运行的ASP.net应用程序。我需要以当前登录的用户执行某些数据库更新。

IIS /服务器信息:

  • IIS版本10
  • Windows服务器2019
  • ASP.net Web窗体应用程序
  • 。NET 4.7
  • 假冒
  • 匿名身份验证被禁用应用程序池使用
  • 集成管道
  • 应用程序池以其身份使用
  • 域服务帐户
  • 运行,它有权根据需要访问其他资源。
其他详细信息:

    我所有的数据库连接字符串都设置为
  • integrated security = true
在活动目录中,已在Web服务器和SQL Server之间配置了受约束的委派,允许
  • MSSQLSvc:1433
  • MSSQLSvc(无端口)
  • 域服务帐户
  • 是Web服务器上本地管理员组的成员(仅用于测试目的)[当我执行需要以当前登录用户身份进行的数据库更新时,我以这种方式模拟它们:

    var windowsIdentity = User.Identity as WindowsIdentity; WindowsIdentity.RunImpersonated(windowsIdentity.AccessToken, () => { // perform database update });

    这引发异常-System.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

    如果我将应用程序池标识更改为使用

    AppPoolIdentity

    (默认应用程序池标识),则模拟将正常工作。为什么这种模拟对

    AppPoolIdentity

    起作用,但对我的domain service account不起作用?
    c# asp.net iis impersonation kerberos-delegation
    1个回答
    0
    投票
    以前我也遇到过类似的问题,我发现您使用的是Kerberos,一旦获得,就可以了!

    在与您类似的情况下对我有用的方法是打开IIS,转到您的站点,单击“配置编辑器”图标。在顶部的两个标题中,首先单击“从”下拉列表,然后选择“ ApplicationHost.config”,然后在“从”左侧的“部分”标题中,单击下拉列表,然后展开文件夹:

    system.WebServer->安全性->身份验证-> windowsAuthentication,

    根据情况,您可以选择“ useAppPoolCredentials”并将其设置为TRUE。

    enter image description here

    当您将“ useAppPoolCredentials”设置为true时,您正在告诉IIS它需要使用其应用程序池标识,您将其定义为域服务帐户以对返回的授权票证进行解密。用户个人资料通常没有相关规定。

    如果不起作用,另一种尝试的方法是在应用程序池的高级设置中切换“加载用户个人资料”设置,我不确定是对还是错可以解决您的问题,但似乎可以之前帮助解决类似问题。我会先尝试上面的方法,如果那不起作用,请尝试以下方法:

    loaduserprofile

    我没有看到任何有关SPN的内容,您使用的是这些吗?当运行域帐户作为应用程序池ID时,可能需要使用它们。下面的文章记录了该步骤以及使它起作用的其他步骤:

    https://techcommunity.microsoft.com/t5/iis-support-blog/setting-up-kerberos-authentication-for-a-website-in-iis/ba-p/324644

    此外,这里有很多文章对我的工作起到了很大的帮助作用。

    https://docs.microsoft.com/en-us/archive/blogs/chiranth/setting-up-kerberos-authentication-for-a-website-in-iis

    https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc961723(v=technet.10)?redirectedfrom=MSDN

    希望这会有所帮助。

    © www.soinside.com 2019 - 2024. All rights reserved.