应用程序池标识为匿名用户

作者:Walter Oliver

在早期版本的 IIS 中,匿名用户能隔离经典 ASP 内容,具体方法是为每个站点使用不同的匿名用户。 隔离是通过阻止 ASP 脚本还原回进程标识(称为“模拟沙盒”)来实现的。 在使用经典 ASP、ASP.NET 和其他动态内容的混合环境中,模拟沙盒并没有那么有用。 例如,ASP.NET 使用不同的隔离技术(称为信任级别),并且始终作为进程标识运行,除非你使用不同类型的模拟。

若要在 IIS 7 及更高版本中实现隔离,可将应用程序池作为单独的标识运行。 如果未为网站配置匿名用户帐户,则可将 IIS 配置为自动使用应用程序池标识。 这可大大减少网站需要的帐户数,并能更轻松地管理帐户。

将 Web 服务器配置为使用应用程序池标识作为匿名标识

  • 打开命令提示符并运行以下命令:
%windir%\system32\inetsrv\appcmd set config -section:anonymousAuthentication /username:"" --password

注意

通过将匿名用户属性设置为空白字符串(例如 username="")来启用此功能。 从 applicationHost.config 文件中删除元素将导致与使用空白字符串不同的行为。

注意

本文中所述的设置与 SQL Server Express 不兼容。 任何情况下都不应在共享托管方案中使用 SQL Server Express;此版本仅用于应用程序开发环境;有关详细信息,请参阅 SQL Server Express 和托管

使用IIS PowerShell 提供程序,将 Web 服务器配置为使用应用程序池标识作为匿名标识

  • 打开 PowerShell 提示符并运行以下命令:
set-webconfigurationproperty /system.webServer/security/authentication/anonymousAuthentication -name userName -value ""