IIS应用程序池标识(程序池账户)ApplicationPoolIdentify
IIS中应用程序池的运行账户(标识)有以下4个选项
- LocalService 本地服务
- LocalSystem 本地系统
- NetWorkService 网络服务
- ApplicationPoolIdentify
默认情况下新建的应用程序池标识为ApplicationPoolIdentify,官网文档解释(传送门)为:
If you are running IIS 7.5 on Windows Server 2008 R2, or a later version of IIS, you don\’t have to do anything to use the new identity. For every application pool you create, the Identity property of the new application pool is set to ApplicationPoolIdentity by default. The IIS Admin Process (WAS) will create a virtual account with the name of the new application pool and run the application pool\’s worker processes under this account by default.
大概的意思:在IIS7.5以后的版本中,新建的所有程序池默认运行标识为ApplicationPoolIdentity。启动该应用程序池时,会自动创建一个与应用程序池同名的虚拟账户来运行该进程。
说它是虚拟的,是因为在用户管理里看不到该用户或用户组,在命令行下输入net user也无法显示,但该帐号又是确实存在的。可以通过任务管理器观察到w3wp.exe这个web程序进程是以应用程序的名称作为用户名运行的。
通过前面的观察,确定CQApi这个账户是隐藏不可见的,那么如果当我们需要操作一个当前项目外的文件夹时,我们需要给这个文件赋予当前运行账号以操作权限,但是我们直接使用CQApi为关键字去查找会发现根本没有这个账号。
关键:手动输入IIS AppPool\CQApi (即IIS AppPool\应用程序池名)
除此之外,还可以通过给目录分配Authenticated Users用户组来获取权限
Authenticated Users:Windows系统中所有使用用户名、密码登录并通过身份验证的账户,不包括来宾账户Guest,即使来宾帐户有密码。 与Everyone的区别在于Everyone包括所有账户,如内置的来宾账户和LOCAL_SERVICE。
用Authenticated Users代替everyone组可以防止匿名访问。