以前,在 IIS 应用程序中使用 Windows 身份验证时,它将使用应用程序池标识来访问磁盘文件。这意味着 ACL 必须知道应用程序池标识才能获得读取权限等。此处不使用模拟。
一个已禁用匿名并启用基本和 Windows 身份验证并在 web.config 中配置了 Windows 身份验证的应用程序拒绝访问在特定目录的 Web 配置中配置为“允许”的用户(正确的凭据),直到我将该用户配置为对文件具有读取权限。
这看起来很奇怪,因为如果没有模拟,我的印象(我当然记得以前是这种情况)是它会以工作进程标识(在本例中为命名域服务帐户,该服务帐户在 IUSR_WPG 中或工作进程组的正确名称)访问磁盘资源。
有什么想法为什么它要为特定用户而不是 WPI 的域服务帐户配置 ACL?
答案1
我相信如果您希望应用程序使用服务帐户,则必须启用匿名功能。请查看IIS 身份验证文章