【问题标题】:IIS 7 impersonation and identitiesIIS 7 模拟和身份
【发布时间】:2011-04-07 15:25:33
【问题描述】:

我正在努力适应 II7,我已经使用 IIS6 有一段时间了。

在 IIS 6 中,我会在 web.config 中设置 <identity impersonate="true"/>,并确保如果文件夹需要的权限超过读取权限,我将正确的 NTFS 权限应用于 IUSR_[MACHINENAME] 帐户。

在 IIS 7 中,我无法在没有应用太多权限的情况下复制此设置。

如果我在 IIS 7 中使用 <identity impersonate="true"/>,Environment.Username 会告诉我我确实在模拟 IUSR 帐户,这是新的等效帐户。但是,如果我使用表单身份验证登录网站的管理部分,它的模拟与我预期的不同。

在应用程序池中设置 NetworkService:

  • 未登录:IUSR,未冒充:[MACHINENAME]$
  • 已登录:[MACHINENAME]$,未冒充:[MACHINENAME]$

在应用程序池中设置 LocalService:

  • 未登录:IUSR,未冒充:LOCAL SERVICE
  • 已登录:LOCAL SERVICE,未模拟:LOCAL SERVICE

如果我给 IIS_IUSRS 帐户 NTFS 权限,我可以让事情正常工作,但这似乎很奇怪。我怎样才能始终冒充 IUSR 帐户?或者,我是否应该将 NTFS 权限授予 IIS_IUSRS?

我希望能很好地解释 IIS7 中的这一变化 - 我已经四处搜索,但找不到关于表单身份验证这种用法的解释。

【问题讨论】:

  • 嗨@ScottE 你解决了这个问题?

标签: .net iis-7 impersonation


【解决方案1】:

这是来自 Technet 文章的 sn-p:

如果您启用模拟 ASP.NET 应用程序,那个应用程序 可以在两种不同的一种中运行 上下文:作为用户 由 IIS 7 验证或作为 您设置的任意帐户。为了 例如,如果您使用匿名 身份验证并选择运行 ASP.NET 应用程序作为 认证用户,应用程序 将在设置的帐户下运行 匿名用户(通常是IUSR)。 同样,如果您选择运行 根据任意应用 帐户,它将在任何情况下运行 为此设置了安全上下文 帐户。

这是完整的文档:

http://technet.microsoft.com/en-us/library/cc730708%28WS.10%29.aspx

【讨论】:

  • 这并不能解释当您通过表单身份验证登录时会发生什么。试试我上面的例子,你会看到。
【解决方案2】:

IIS 7 中的管道更改处理身份验证的方式与以前的版本非常不同。大多数情况都是可能的,但设置不同。

您应该查看有关 IIS 7.0 中“重大更改”的条目它应该可以帮助您缩小范围

http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/

希望有帮助

【讨论】:

  • 我已经读过 - 我没有收到错误消息。这不是重大变化,而是我正在寻找的一种理解。
猜你喜欢
  • 2011-12-01
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
相关资源
最近更新 更多