IIS_IUSRS 可以访问文件,但应用程序池标识用户不能

IIS_IUSRS 可以访问文件,但应用程序池标识用户不能

我正在尝试了解 IIS 文件权限。给定文件对 IIS_IUSRS 具有“完全控制”权限。但似乎所有应用程序池标识用户都无法访问该文件。(我注意到我的一些应用程序池标识用户由于某种原因不是 IIS_IUSRS 的成员,所以我只是手动添加了它们。)

当给定的应用程序池标识是 IIS_IUSRS 的成员时,如果 IIS_IUSRS 可以访问该文件,那么应用程序池标识用户怎么会无法访问该文件呢?请参见下面的截图。谢谢。

IIS_IUSRS 具有“完全控制权”。

IIS_IUSRS 在“有效权限”下也具有“完全控制”,但给定的应用程序池标识用户在“有效权限”下没有权限。

答案1

使用匿名身份验证时,IIS 默认使用特定用户名IUSR来访问文件。此用户自动成为 Windows 的成员Users,但不是IIS_IUSRS

Users如果您从文件中删除了权限,则默认站点设置将不再起作用。

我通常不使用IUSR,要在 GUI 中更改此设置,请选择服务器或站点节点并打开图标Authentication,选择Anonymous AuthenticationEdit在右侧的操作窗格中选择:

IIS 中的匿名身份验证设置

从特定用户更改为Application pool identity,现在文件访问是通过此帐户完成的,它应该能够访问您的文件。

您可以在 PowerShell 中执行相同操作:

对于整个服务器:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/security/authentication/anonymousAuthentication" -name "userName" -value ""

对于特定站点:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'SiteName' -filter "system.webServer/security/authentication/anonymousAuthentication" -name "userName" -value ""

我曾经在博客文章

相关内容