IIS 7模拟和身份

时间:2010-09-03 01:28:25

标签: .net iis-7 impersonation

我正在尝试习惯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账户?或者,我是否应该将IISFS权限授予IIS_IUSRS?

我很欣赏IIS7中这一变化的一个很好的解释 - 我已经搜索过,无法通过表单身份验证找到这种用法的解释。

2 个答案:

答案 0 :(得分:1)

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

你应该看一下IIS 7.0中“破坏性变化”的这个条目它应该可以帮助你缩小到正在发生的事情

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

希望有所帮助

答案 1 :(得分:1)

这是一篇来自technet文章的片段:

  

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

以下是完整文件:

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