这里有很多重载的术语,以及IIS 7和7.5之间的更改。
应用程序池标识与应用程序池帐户
让我们从应用程序池标识(小写字母I,又名应用程序池帐户)开始:
按照我的说法,应用程序池帐户是用于启动应用程序池的帐户,并且是应用程序池在不假冒其他任何人时所采用的身份。
因此,无论您赋予应用程序池什么身份,都需要能够读取内容文件夹中的文件:特别是{但不限于}任何web.config文件(它们构成IIS配置的一部分,并控制应用程序池将要做)。
如果无法访问文件夹,则假定其中可能存在重要的(改变游戏规则的)web.config文件,并显示错误。因此,应用程序池帐户需要对所有内容文件夹具有读取权限。
应用程序池标识
为什么要区分应用程序池帐户(应用程序池的标识)和应用程序池标识?因为使用特殊大写字母的ApplicationPoolIdentity是一种新帐户类型 -托管服务帐户-在IIS 7.5 / Windows 2008 R2中引入并默认设置,并且也可以在Windows 2008 SP2中使用(但不是默认值)。
请参阅IIS.Net上的应用程序池标识
使用GUI在R2下创建网站时:
- 将创建一个应用程序池来托管该网站,并且
- 帐户类型将为ApplicationPoolIdentity,而不是网络服务(默认为2008),本地服务或本地系统。
对于2008 RTM,默认的应用程序池帐户是网络服务以及唯一的应用程序池标识/唯一符;新R2 / SP2 AppPoolIdentity 帐户类型是网络服务- 像帐户(即连接断开框时是计算机),但相同的盒子内的另一应用程序池的防止假冒。
回到原始问题:
应用程序池帐户定义谁您的应用程序运行的时候它不是模仿别人
身份验证方法描述了如何对客户端进行身份验证(以模拟客户端)
该匿名用户帐户定义你要冒充为未通过身份验证请求的用户在作为运行谁- IUSR是这样的用户。
顺便说一下,使用IIS 7.5,您可以将匿名用户帐户设置为应用程序池标识(匿名身份验证方法的属性),这可以使为给定网站隔离和保护内容更加直接。
使用IIS AppPool \ YourSiteName作为名称格式设置权限。(另请参阅此帖子)