我正在努力适应II7,因为我已经和IIS6一起工作了很长一段时间。
在IIS6中,我将在<identity impersonate="true"/>中设置web.config,并确保在文件夹所需的权限超过读取权限的情况下,对IUSR_MACHINENAME帐户应用正确的NTFS权限。
在IIS 7中,我在不使用太多权限的情况下复制此设置时遇到了困难。
如果我在IIS7中使用<identity impersonate="true"/>,Environment.Username告诉我,我实际上是在模拟IUSR帐户,这是一个新的等价物。但是,如果我使用表单身份验证登录到网站的管理部分,它模拟的方式与我预期的不同。
在应用程序池中设置了NetworkService:
未登录
在应用程序池中设置了LocalService:
如果我给IIS_IUSRS帐户NTFS权限,我可以让事情正常工作,但这似乎很奇怪。我怎么能总是冒充IUSR帐户?或者,我应该将NTFS权限授予IIS_IUSRS吗?
我希望能够很好地解释IIS7中的这一变化--我已经搜索过了,但是找不到表单身份验证的用法解释。
发布于 2010-09-06 23:26:33
以下是technet文章的片段:
如果为ASP.NET应用程序启用模拟,则该应用程序可以在两种不同的上下文中之一运行:以IIS 7验证的用户身份运行,或作为您设置的任意帐户运行。例如,如果您使用匿名身份验证,并选择以身份验证用户的身份运行ASP.NET应用程序,则应用程序将在为匿名用户设置的帐户下运行(通常是IUSR)。同样,如果您选择在任意帐户下运行应用程序,则该应用程序将在为该帐户设置的任何安全上下文下运行。
以下是全文:
http://technet.microsoft.com/en-us/library/cc730708%28WS.10%29.aspx
发布于 2010-09-03 01:38:08
IIS 7中的管道更改处理身份验证的方式与以前的版本非常不同。大多数场景都是尽可能的,但是设置是不同的。
您应该查看IIS7.0中的“破坏更改”条目,它将帮助您缩小所发生的范围。
http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/
希望这有帮助
https://stackoverflow.com/questions/3632456
复制相似问题