【问题标题】:ASP.NET Impersonation in IISIIS 中的 ASP.NET 模拟
【发布时间】:2019-09-09 03:50:36
【问题描述】:

ASP.NET 模拟 我有一个托管在 IIS 上的站点,它同时启用了匿名身份验证和表单身份验证。

最初我有impersonation Turned Off。因此,在使用表单身份验证登录之前,

System.Security.Principal.WindowsIdentity.GetCurrent().Name

我得到IIS APPPOOL\DefaultAppPool的值

当我启用模拟时,我得到一个值 NT AUTHORITY\IUSR

使用表单身份验证登录后,无论我是否打开或关闭了模拟。我总是得到IIS APPPOOL\DefaultAppPool的值

我的问题是....如果我打开了模拟并使用 JSMITH 的帐户登录,我不应该得到 JSMITH 的值

【问题讨论】:

  • 冒充的全部意义不在于......好吧,冒充(不同的用户帐户)?你为什么期望它假设 original 登录?
  • 所以如果我关闭了模拟功能.. 那么我应该看到 JSMITH?
  • 如果没记错的话,Forms Authentication 不需要 Windows 帐户。因此,IIS 将使用自己的权限登录。请参阅 备注 部分中的 docs.microsoft.com/en-us/dotnet/api/…

标签: asp.net


【解决方案1】:

模拟不会以您登录的用户身份运行,它只允许您在指定的用户帐户下运行您的应用程序。

<identity impersonate="true" userName="domain\username" password="P@$$word"/>

这将以domain\username 运行。

如果您想使用已登录的用户帐户,您需要查看类似 Forms AuthenticationWindows Authentication 之类的内容。

【讨论】:

  • 显然,当我使用表单身份验证时,我是否打开或关闭模拟都无关紧要。它始终在 IIS APPPOOL\DefaultAppPool 下运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-08
  • 2021-05-28
相关资源
最近更新 更多