IIS7.5中(僅win7,win2008 SP2,win2008 R2支持),應用程序池的運行賬號,除了指定爲LocalService,LocalSystem,NetWorkService這三種基本類型外,還新 增了一種ApplicationPoolIdentify html
win7的官方幫助上是這麼說的:
動態建立「應用程序池標識」賬戶,所以,此賬戶對於您的應用程序來講是最安全的。web
也就是說"ApplicationPoolIdentity"賬號是系統動態建立的「虛擬」賬號(說它是虛擬的,是由於在用戶管理裏看不到該用戶或用戶組,在命令行下輸入net user也沒法顯示,但該賬號又是確實存在的) windows
如何驗證該賬號確實是存在的的?打開任務管理器,觀察一下:安全
w3wp.exe即iis進程,上圖中高亮部分代表該iis進程正在以賬號luckty運行(注意這裏的luckty即爲上圖中的應用程序池名稱)服務器
好了,搞清楚這個有什麼用?測試
先來作一個測試,好比咱們在iis裏新建一個站點,主目錄設置爲c:\2\,應用程序池就指定剛纔圖中的luckty網站
假如咱們在該站點的default.aspx.cs裏寫入這樣一行代碼 :spa
File.AppendAllText("C:\\TestDir\\1.txt",DateTime.Now.ToString());命令行
前提是c盤必須先建一個目錄TestDir,同時除Administrator,System保留徹底控制權外,其它賬號的權限都刪除掉設計
運行後,會提示異常: 對路徑「C:\TestDir\1.txt」的訪問被拒絕。
緣由很明顯:該站點運行時是以應用程序池(luckty)對應的虛擬賬號運行的,而這個虛擬賬號不具有c:\TestDir的訪問權限
這種狀況在web服務器(iis6)安全配置中很常見,好比咱們把圖片上傳目錄,經常放在主目錄以外,同時以虛擬目錄形式掛於站點之下,另外在IIS6中不指定該目錄任何執行權限 ,這樣即便有人非法上傳了asp/aspx木立刻去,也沒法運行搞不成破壞!
言 歸正傳,要想讓那一行測試代碼正常運行,解決辦法很簡單,把虛擬賬號的權限加入文件夾安全權限中便可,可是問題來了:這個虛擬賬號咱們是不可見的,若是你 直接添加名爲luckty的用戶到文件夾安全賬號裏,根本通不過(提示找不到luckty用戶),說明這個虛擬賬號名稱並非"luckty"
關鍵:手動輸入 IIS AppPool\luckty (即IIS AppPool\應用程序池名),再肯定,這回ok了.
固然除了用"IIS AppPool\應用程序池名"外,windows內部還有一個特殊的用戶組Authenticated Users,把這個組加入TestDir的安全權限賬號裏也能夠,不過我的以爲沒有"IIS AppPool\應用程序池名"來得精確.
結束語:
IIS7.5的虛擬賬號設計確實很棒,想一想傳統IIS6的時候,爲了把同一服務器上的各站點權限分開(以防止木馬搗亂), 不得不建立一堆iuser_XXX,iwam_XXX賬號並指定密碼,再一個個站點分配過去,累死人!而虛擬賬號設計則讓這類管理輕鬆多了,也不用擔憂密 碼過於簡單或過時問題。So,還在等什麼,趕忙升級到win7/win2008 R2吧!
轉載:http://www.cnblogs.com/yjmyzz/archive/2009/10/26/1590033.html
設置完後再設置
選擇網站>IIS>身份驗證>匿名身份驗證>應用程序池標誌