13

我遇到了 IIS 和 ACL 的问题。

我在专用的 AppPool 下配置了一个 MVC 应用程序。apppool 在 ApplicationPoolIdentity 下运行(在我的情况下,用户 IIS AppPool\accountinfo.local = 与我的网站同名)。

我在根文件夹上完全控制了这个用户,并确保权限被继承。

当我访问主页时,它运行良好,我可以访问它。但是,当我尝试访问位于子文件夹 (Content/Site.css) 中的静态内容时,我收到错误 401.3。

我已确保权限是继承的,如果我使用有效权限,我可以看到该用户确实拥有完全控制权。

我启用了失败的请求跟踪和安全审核,但我没有得到任何日志文件,也没有在事件查看器中获得任何事件。

我在这里想念什么?

4

2 回答 2

27

好,我知道了。

显然,对静态内容的请求不是通过 applicationIdentity 而是通过标准 IUSR 帐户。

一旦我授予该用户对该文件夹的读取权限,它就开始工作。

今天学了点儿新东西。

于 2013-05-04T22:40:32.650 回答
5

在 IIS 中使用匿名身份验证时,静态内容由“匿名用户身份”访问(和提供)。默认情况下,这被设置为特定的内置用户帐户“IUSR” - 因此为该用户授予权限可以解决问题(如Kenneth 的出色回答中所述)。

如果您出于某种原因不想使用 IUSR 帐户,您可以通过执行以下操作在 IIS 中更改网站的“匿名用户身份”:

  1. 转到 IIS 中的站点并在功能窗格中双击“身份验证”

突出显示身份验证的 IIS 功能窗格的屏幕截图

  1. 右键单击“匿名身​​份验证”并选择“应用程序池身份”以使用您的应用程序池身份(或者您可以通过单击“设置”按钮设置与 IUSR 不同的特定用户)

编辑匿名身份验证凭据对话框的屏幕截图

此 Microsoft Docs 文章中也记录了该过程:

在 IIS 上构建静态网站 - 第 3 步:配置匿名身份验证

我将重现您可能选择更改匿名身份验证身份的一个重要原因,该文章中提到了这一点:

如果您使用 IUSR 帐户,则您授予匿名用户与该帐户关联的所有内部网络访问权限。

于 2018-08-23T14:57:40.960 回答