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

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

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

IIS_IUSRS具有“完全控制”。

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

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

如果您从文件中删除了Users权限,则默认网站设置将不再有效。

我通常不使用IUSR ,在GUI中进行更改,select服务器或站点节点并打开“ Authentication图标,在右侧的“操作”窗格中select“ Anonymous Authentication和“ Edit ”:

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 "" 

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