为什么IIS6使用我的网站匿名用户帐户进行文件访问而不是应用程序池帐户?

我正在IIS 6.0中build立一个网站,并且对帐户和权限感到困惑。 我有一个特别为这个网站build立的应用程序池,与一个特定的用户。 身份validation方法属性表具有作为匿名用户的IUSR_XXX帐户。

根据这个问题: 在IIS 7.0中,应用程序池标识和网站标识有什么区别?

应用程序池帐户应该用于文件访问。 但是我没有看到这种行为。 如果我只给网站用户帐户权限的文件系统,我得到访问被拒绝的错误。 但是如果我给IUSR_XXX读取权限的文件,他们会显示。

那么这里发生了什么? 在这个问题中,我的IIS 6和IIS 7的行为有什么不同? 我应该忽略应用程序池,只更改匿名用户? 这里build议的设置是什么,这个站点需要访问数据库并写入文件系统中的某些文件夹?

任何帮助将不胜感激,谢谢!

IUSR和networking服务帐户都由IIS使用。 这是我的build议…

  1. 为所有人提供公共网站:

IUSR和networking服务需要具有对所有应用程序文件(.aspx页面等)和dll的访问权限。 IUSR需要具有对任何网站正在写入文件的文件夹的写入权限(这可能对公共网站是危险的)。 该数据库将通过数据库连接部分的web.config中指定的SQL或networking帐户进行访问。

  1. 对于具有表单身份validation的网站(使用用户名和密码通过login页面login):

同上。 现在,对任何文件夹的写入访问权限得到了更好的保护,因为使用本网站的用户已被您的应用程序authentication。

  1. 对于使用集成身份validation的网站:

经过身份validation的用户的用户凭证需要具有对所有应用程序文件(.aspx页面等)和dll的访问权限。 经过身份validation的用户的用户凭据需要具有对网站正在写入文件的任何文件夹的“写入”权限。 数据库可以通过数据库连接部分的web.config中指定的SQL或networking帐户或通过身份validation用户的用户凭据访问。

更新networking服务帐户(或任何您用于应用程序池的帐户)和IUSR一起工作。 我并不总是清楚地知道哪个帐户正在控制哪些资源的访问权限,但是我从经验中知道您需要同时拥有这两个帐户。 IUSR用于访问.aspx页面,图像文件,静态内容等。networking服务帐户访问IIS元数据库,应用程序DLL,.Net框架文件等。希望这有助于。

从我所能find的,这个行为在IIS6和IIS7之间改变了。 在II6中,您似乎不能将应用程序池帐户作为匿名用户帐户,至less可以像在II7中一样。 我喜欢在IIS7中使用应用程序池帐户进行匿名访问,但在IIS6中不起作用,所以我需要在其中进行不同的设置。

看到这篇文章: http : //blogs.iis.net/nitashav/archive/2010/02/15/iis6-0-ui-vs-iis7-x-ui-series-anonymous-authentication.aspx

Apart from the account changes, IIS 7.x also enables designating the Application pool identity as the anonymous user account. This main advantage of using the application pool identity as the anonymous user is that you do not have to manage security for another user account.