我有一个IIS7网站设置为在自己的应用程序池中运行。 应用程序池configuration为:
Managed Pipeline Mode: Integrated
Identity: I_siteuser (帐户是IIS_IUSRS的成员)
网站的物理path为: d:\websites\testsite\www ,帐号I_siteuser对该文件夹具有修改权限。
如果我设置网站使用传递身份validation,我得到一个安全错误:
HTTP Error 401.3 - Unauthorized
如果我将网站configuration为使用特定用户( I_siteuser ),则可以查看页面并运行脚本。
我的印象是,如果使用传递身份validation,那么应用程序池的身份将被使用(在这种情况下,configuration为以I_siteuser的身份运行)。
这似乎并非如此,该网站运行的身份实际上是内置的帐户IUSR 。 我通过为IUSR的网站文件夹添加读取/执行权限来validation这一点。
我在这里错过了另一个设置吗?
更新:
我也在网站上启用了Basic Authentication和Windows Authentication ,但这只是导致login对话框出现。
我还会看到在任务pipe理器中以I_siteuser标识运行的应用程序池的工作进程。
我认为你是误解通过身份validation。 如果启用身份validation,则会发生以下两种情况之一:
对于匿名身份validation,为匿名访问指定的用户标识需要访问文件的物理path。 (默认情况下,这是内置的IUSR帐户,但可以在匿名身份validation的编辑操作中进行configuration)
如果启用了身份validation,则通过身份validation的用户凭据需要访问文件的物理path。 应用程序池标识还需要对文件进行只读访问。
检查站点的身份validation方法并确保启用基本和/或lanman身份validation。
JR
目录中的任何文件是否包含访问受限的其他目录中的文件? 另外,请尝试授予对组IIS_IUSRS的读访问权限,而不仅限于您的I_sitename用户。 显然要确保在站点(或虚拟目录)身份validation设置中启用了匿名访问。