我正在尝试习惯II7,与IIS6合作已有一段时间了。
在IIS 6中,我在web.config中设置了<identity impersonate="true"/>
,如果文件夹需要超过读取权限,请确保我将正确的NTFS权限应用于IUSR_ [MACHINENAME]帐户。
在IIS 7中,我无法复制此设置而无需申请太多权限。
如果我在IIS 7中使用<identity impersonate="true"/>
,Environment.Username告诉我,我确实冒充IUSR帐户,这是新的等价物。但是,如果我使用表单身份验证登录网站的管理员部分,则会模仿我的预期。
在应用程序池中设置NetworkService:
在应用程序池中设置LocalService:
如果我给IIS_IUSRS帐户NTFS权限,我可以让事情正常,但这似乎很奇怪。我怎么能一直冒充IUSR账户?或者,我是否应该将IISFS权限授予IIS_IUSRS?
我很欣赏IIS7中这一变化的一个很好的解释 - 我已经搜索过,无法通过表单身份验证找到这种用法的解释。
答案 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