2

我在询问运行 ASP.NET/IIS(或 Cassini 或 IIS Express)应用程序的用户的帐户。我问的是默认值。那里有很多混乱。谷歌搜索向我展示了很多类型的用户,例如,

  • 我的计算机名\我的用户名,
  • IIS APPPOOL\ASP.NET v4 用户,
  • IIS_WPG,
  • IIS_IUSRS 用户,
  • 网络服务用户,
  • AspNet 用户,
  • IUSR_MachineName 用户,
  • IIS_IUSRS 用户,
  • IUSR 用户,
  • IIS_WPG 用户,
  • IWAM_computername 用户,
  • IIS APPPOOL\DefaultAppPool 用户。

这些非常令人困惑。

4

2 回答 2

3

Cassini 在启动 VS 的帐户下运行。所以默认是当前登录的 windows 用户,runas 将在特定用户帐户下运行。

IIS 上的应用程序使用应用程序池运行。这是来自默认站点的片段:

在此处输入图像描述

每个应用程序池都可以使用高级设置进行配置:

在此处输入图像描述

我还应该指出可能的模拟,其中上下文在模拟用户下运行。此用户可以由 IIS 或使用代码提供。以下是如何配置 IIS 模拟的示例(特定应用的身份验证选项卡):

在此处输入图像描述

希望这可以帮助!

于 2012-12-19T09:19:46.443 回答
2

好吧,其中之一是根据您正在运行的 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。因此,无论您是否使用它,都会为这个新的应用程序池创建一个动态帐户。

于 2012-12-23T21:07:14.203 回答