我有一个经典的ASP网站,我试图设置与匿名身份validation。 以下是我目前的设置:
将读取和执行权限分配给站点目录上的IUSR帐户和NETWORK SERVICE帐户允许匿名访问。 但是,由于某种原因NETWORK SERVICE权限可以分配给IIS_IUSRS并达到相同的效果。 这对我来说似乎很奇怪,因为应用程序池正在运行时select了NetworkService标识,而不是ApplicationPoolIdentity标识。 使用net localgroup IIS_IUSRS显示NETWORK SERVICE不是机器上的IIS_IUSRS组的成员。
那么,为什么要为IIS_IUSRS分配权限就可以访问NETWORK SERVICE帐户呢?
我想也许有一些奇怪的后备逻辑,它尝试使用应用程序池的虚拟帐户,如果它无法通过NETWORK SERVICE身份validation,但运行进程监视器显示w3wp.exe进程成功使用NT Authority\NETWORK SERVICE身份validation。 有任何想法吗?
这是一些服务器信息,如果有帮助:
任何运行IIS应用程序池的帐户都会在运行时自动添加到IIS_IUSRS组中。
或者更正确地说, IIS_IUSRS组的安全令牌被添加到运行任何应用程序池的进程的安全令牌。
查看IIS_IUSRS组的静态成员资格,可以让您知道发生了什么。
如果您查看Process Explorer中的安全选项卡,则应该将BUILTIN\IIS_IUSRS视为w3wp.exe进程的组之一。