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組可以防止匿名訪問