我问的是运行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 回答
那么,根据您运行的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 . 因此,无论您是否使用它,都会为此新应用程序池创建一个动态帐户 .
Cassini在启动VS的帐户下运行 . 因此默认将是当前登录的Windows用户,runas将在特定用户帐户下运行 .
IIS上的应用程序使用应用程序池运行这是默认网站的snipp:
可以使用高级设置配置每个应用程序池:
我还应该指出可能的模仿,其中上下文在模仿用户下运行 . 这个用户可以通过IIS或使用代码提供 . 以下是如何配置IIS模拟的示例(特定应用程序的“身份验证”选项卡):
希望这可以帮助!