首页 文章

ASP.NET / IIS(或Cassini或IIS Express)中有多少类型的用户和他们的实际角色?

提问于
浏览
2

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

  • my-computer-name \ myname用户,

  • IIS APPPOOL \ ASP.NET v4用户,

  • IIS_WPG,

  • IIS_IUSRS用户,

  • 网络服务用户,

  • AspNet用户,

  • IUSR_MachineName用户,

  • IIS_IUSRS用户,

  • IUSR用户,

  • IIS_WPG用户,

  • IWAM_computername用户,

  • IIS APPPOOL \ DefaultAppPool用户 .

这些都很令人困惑 .

2 回答

  • 3

    那么,根据您运行的Windows版本,这是不同的 . 第二,你问的是3种不同的服务器 . 所以这可能是令人困惑的原因 .

    开发服务器

    首先,最简单的一个:卡西尼 . 此服务器在相同的帐户下运行,并具有与其启动的Visual Studio实例相同的权限 . 通常,这只是您自己的Windows帐户 .

    IIS Express使用与IIS完全相同的代码库,但它也将在您自己的Windows帐户下运行,该帐户启动Visual Studio(或Web Matrix) .

    IIS 6.0

    现在适合IIS . 在这里您可以找到许多帐户 . 首先,您仍将在Windows Server 2003计算机上找到的“旧”IIS 6.0将使用以下帐户:

    • Network Service (IIS 6.0及更高版本中应用程序池的默认和建议的工作进程标识)

    • Local Service (访问非常有限)

    • Local System (在'IIS 5.0 isolation mode'中运行时用于工作进程,是管理员的成员并具有完全访问权限)

    • IIS_WPG (工作进程组的缩写,不是帐户,但是组,工作进程标识应该是该组的成员,以获得最低要求的权限)

    • IUSR_ComputerName (不用于工作进程,而是将匿名访问者映射到Windows帐户)

    • IWAM_ (对于IIS 5.0隔离模式,您现在通常使用应用程序池进行隔离)

    • ASPNET (也适用于IIS 5.0隔离模式,它看起来像 the ASP.NET帐户,但在大多数情况下它不是)

    (此列表基于TechNet文章IIS and Built-in Accounts (IIS 6.0) . )

    IIS 7及以上版本

    对于IIS 7,上面列出的其中一些不再相关,有些已被替换 . 由于这些帐户是内置于Windows的,因此它们在任何地方都具有相同的SSID,这可能会偶尔派上用场 .

    如果将服务器从Windows 2003升级到Windows 2008,如果安装了IIS 6.0兼容性功能或较旧的IIS组件,则可能在一台计算机上安装了旧帐户和新帐户 .

    • IUSR替换IUSR_ ,因此默认用于映射匿名用户

    • IIS_IUSRS替换IIS_WPG组,因此不是帐户,而是组

    (这是基于文章Understanding Built-In User and Group Accounts in IIS 7 . )

    AppPool标识(自IIS 7.0起)

    此列表现已基本完成,但我们仍需要了解一种特殊类型的帐户:“动态”AppPool标识 . 这些不是机器上的实际帐户,例如其他帐户,例如您找不到它们在Windows中列为用户 . 但是,如果您选择ApplicationPoolIdentity选项,它们是为应用程序池即时创建的虚拟帐户 .

    如果您需要为文件或文件夹授予此类帐户访问权限,您仍可以通过键入以下内容来搜索该帐户: IIS AppPool (将替换为您创建的应用程序池的名称) .

    (您可以在iis.net上的Application Pool Identities中阅读更多相关信息 . )

    安装.NET 4.0时,IIS会添加一个新的应用程序池,以便能够与现有的.NET 2.0 Web应用程序一起运行新的.NET 4.0 Web应用程序 . 安装程序为此应用程序池提供名称ASP.NET v4.0,并使用选项ApplicationPoolIdentity . 因此,无论您是否使用它,都会为此新应用程序池创建一个动态帐户 .

  • 2

    Cassini在启动VS的帐户下运行 . 因此默认将是当前登录的Windows用户,runas将在特定用户帐户下运行 .

    IIS上的应用程序使用应用程序池运行这是默认网站的snipp:

    enter image description here

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

    enter image description here

    我还应该指出可能的模仿,其中上下文在模仿用户下运行 . 这个用户可以通过IIS或使用代码提供 . 以下是如何配置IIS模拟的示例(特定应用程序的“身份验证”选项卡):

    enter image description here

    希望这可以帮助!

相关问题