Asp.net WindowsIdentity.GetCurrent()与Request.LogonUserIdentity?

Asp.net WindowsIdentity.GetCurrent()与Request.LogonUserIdentity?,asp.net,iis,impersonation,application-pool,applicationpoolidentity,Asp.net,Iis,Impersonation,Application Pool,Applicationpoolidentity,我试图理解在这里分配权限的区别: vs 通过模拟分配: 1) 我听说模拟用于访问资源,而不是运行exe进程 我试图运行一个EXE进程,只模拟我的用户,但没有成功 后来我将用户设置为应用程序池标识-(这里的第一张图片),然后我能够运行exe文件 他们两人的工作有什么不同 如果我只设置应用程序池标识(而不是模拟),它是否能够访问具有特殊权限的外部资源 我认为您误解/混淆了池身份和模拟身份的定义 池标识是用于启动web应用程序的IIS标识。因此,您的web应用程序将拥有作为该用户访问系统的所有

我试图理解在这里分配权限的区别:

vs 通过模拟分配:

1) 我听说模拟用于访问资源,而不是运行exe进程

我试图运行一个EXE进程,只模拟我的用户,但没有成功

后来我将用户设置为应用程序池标识-(这里的第一张图片),然后我能够运行exe文件

  • 他们两人的工作有什么不同

  • 如果我只设置应用程序池标识(而不是模拟),它是否能够访问具有特殊权限的外部资源


我认为您误解/混淆了池身份模拟身份的定义

  • 池标识是用于启动web应用程序的IIS标识。因此,您的web应用程序将拥有作为该用户访问系统的所有权限
例如,如果您将池标识设置为低权限用户,您将发现您的web应用程序无法访问系统上的文件;但是,如果将池标识设置为管理员,则web应用程序可以访问系统上的所有内容,甚至可以重新启动计算机。是的,你的安全系统坏了

  • 模拟身份是您的web应用程序认为是谁提出请求的身份。更具体地说,当您使用获取当前用户标识时。如果设置模拟,将获得固定的用户标识。如果禁用模拟,则它将是用户的身份。这在Windows域中通常很有用
PS:

嗯……这两个身份没有关系。所以你不应该让他们打架:)


让我们试试这个:池身份就像你父母的身份证。他们知道你是谁,你有多大年纪,你不能撒谎冒充身份就像你的身份证一样,如果你得到了一张假身份证,你可以在21岁以下去酒吧喝酒xD

那么如果poolidentity是王子而冒充是国王用户,谁会赢?