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

use*_*179 3 windows permissions application-pools iis-7.5 file-permissions

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

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

IIS_IUSRS 具有“完全控制”。

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

Pet*_*orf 7

默认情况下,当使用匿名身份验证时,IIS 使用名为的特定用户IUSR访问文件。此用户自动是 WindowsUsers的成员,但不是Windows的成员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 ""
Run Code Online (Sandbox Code Playgroud)

对于特定站点:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'SiteName' -filter "system.webServer/security/authentication/anonymousAuthentication" -name "userName" -value ""
Run Code Online (Sandbox Code Playgroud)

我在一篇博文中写了一些关于这个的内容