好吧,其中之一是根据您正在运行的 Windows 版本而有所不同。其次,您要询问 3 台不同的服务器。所以这可能是让它令人困惑的原因。
开发服务器
首先,最简单的一个:卡西尼。此服务器在与启动它的 Visual Studio 实例相同的帐户下运行,并具有相同的权限。通常,这只是您自己的 Windows 帐户。
IIS Express 使用与 IIS 完全相同的代码库,但它也将在您自己的 Windows 帐户下运行,即启动 Visual Studio(或 Web Matrix)的相同帐户。
IIS 6.0
现在适合IIS。在这里您可能会找到许多帐户。首先,您仍然可以在 Windows Server 2003 机器上找到的“旧”IIS 6.0 将使用以下帐户:
- 网络服务(IIS 6.0 及更高版本中应用程序池的默认和推荐工作进程标识)
- 本地服务(访问权限非常有限)
- 本地系统(用于在“IIS 5.0 隔离模式”下运行的工作进程,管理员成员并具有完全访问权限)
- IIS_WPG(工作进程组的缩写,不是账户,而是一个组,工作进程的身份应该是这个组的成员,以获得最小的所需权限)
- IUSR_ComputerName(不用于工作进程,而是将匿名访问者映射到 Windows 帐户)
- IWAM_{ComputerName}(对于 IIS 5.0 隔离模式,现在通常使用应用程序池进行隔离)
- ASPNET(也适用于 IIS 5.0 隔离模式,它看起来像ASP.NET帐户,但在大多数情况下不是)
(此列表基于 TechNet 文章IIS 和内置帐户 (IIS 6.0)。)
IIS 7 及更高版本
对于 IIS 7,上面列出的其中一些不再相关,并且一些被替换。由于这些帐户是 Windows 内置的,因此它们在任何地方都具有相同的 SSID,这可能会不时派上用场。
如果您将服务器从 Windows 2003 升级到 Windows 2008,或者如果您安装了 IIS 6.0 兼容性功能或更旧的 IIS 组件,您可能在一台计算机上拥有旧帐户和新帐户。
- IUSR(*替换IUSR_{ComputerName},因此默认用于映射匿名用户*)
- IIS_IUSRS(*替换 IIS_WPG 组,因此不是帐户而是组*)
(这是基于文章了解 IIS 7 中的内置用户和组帐户。)
AppPool 身份(自 IIS 7.0 起)
这个列表现在几乎完成了,但我们仍然需要了解一种特殊类型的帐户:“动态”AppPool 身份。这些不是机器上的实际帐户,例如其他帐户,例如,您无法在 Windows 中将它们列为用户。但如果您选择 ApplicationPoolIdentity 选项,它们是为应用程序池动态创建的虚拟帐户。
如果您需要授予此类帐户对文件或文件夹的访问权限,您仍然可以通过键入以下内容来搜索该帐户:IIS AppPool{DefaultAppPool}(将 {DefaultAppPool} 替换为您创建的应用程序池的名称)。
(您可以在 iis.net 上的应用程序池标识中了解更多信息。)
当您安装 .NET 4.0 时,IIS 会添加一个新的应用程序池,以便能够与现有的 .NET 2.0 Web 应用程序一起运行新的 .NET 4.0 Web 应用程序。安装程序将此应用程序池命名为 ASP.NET v4.0,并使用选项 ApplicationPoolIdentity。因此,无论您是否使用它,都会为这个新的应用程序池创建一个动态帐户。