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组可以防止匿名访问。

posted @   傅小灰  阅读(11936)  评论(2编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示