我正在尝试了解 IIS 文件权限。给定文件对 IIS_IUSRS 具有“完全控制”权限。但似乎所有应用程序池标识用户都无法访问该文件。(我注意到我的一些应用程序池标识用户由于某种原因不是 IIS_IUSRS 的成员,所以我只是手动添加了它们。)
当给定的应用程序池标识是 IIS_IUSRS 的成员时,如果 IIS_IUSRS 可以访问该文件,那么应用程序池标识用户怎么会无法访问该文件呢?请参见下面的截图。谢谢。
答案1
使用匿名身份验证时,IIS 默认使用特定用户名IUSR
来访问文件。此用户自动成为 Windows 的成员Users
,但不是IIS_IUSRS
Users
如果您从文件中删除了权限,则默认站点设置将不再起作用。
我通常不使用IUSR
,要在 GUI 中更改此设置,请选择服务器或站点节点并打开图标Authentication
,选择Anonymous Authentication
并Edit
在右侧的操作窗格中选择:
从特定用户更改为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 ""
我曾经在博客文章