IIS中应用程序池的运行账户(标识)有以下4个选项
- LocalService 本地服务
- LocalSystem 本地系统
- NetWorkService 网络服务
ApplicationPoolIdentify
默认情况下新建的应用程序池标识为ApplicationPoolIdentify,官网文档解释(传送门)为:
大概的意思:在IIS7.5以后的版本中,新建的所有程序池默认运行标识为ApplicationPoolIdentity。启动该应用程序池时,会自动创建一个与应用程序池同名的虚拟账户来运行该进程。
说它是虚拟的,是因为在用户管理里看不到该用户或用户组,在命令行下输入net user也无法显示,但该帐号又是确实存在的。可以通过任务管理器观察到w3wp.exe这个web程序进程是以应用程序的名称作为用户名运行的。
通过前面的观察,确定CQApi这个账户是隐藏不可见的,那么如果当我们需要操作一个当前项目外的文件夹时,我们需要给这个文件赋予当前运行账号以操作权限,但是我们直接使用CQApi为关键字去查找会发现根本没有这个账号。
关键:手动输入IIS AppPool\CQApi (即IIS AppPool\应用程序池名)
除此之外,还可以通过给目录分配Authenticated Users用户组来获取权限
用Authenticated Users代替everyone组可以防止匿名访问。