這是IIS 7.5和ASP.NET的一個問題,我一直在研究和獲取無處可去。任何幫助將不勝感激。IIS AppPoolIdentity和文件系統寫入權限
我的問題是:在IIS 7.5中使用ASP.NET時,IIS和/或操作系統在充分信任下運行時如何允許Web應用程序寫入像C:\dump
這樣的文件夾?它是如何不必爲應用程序池用戶明確添加寫訪問權限的(在本例中爲ApplicationPoolIdentity
)?
這一點我知道:
- 在IIS 7.5中,應用程序池的默認身份是
ApplicationPoolIdentity
。 ApplicationPoolIdentity
代表所謂的「IIS APPPOOL \ AppPoolName」的Windows用戶帳戶,在創建應用程序池,其中AppPoolName是應用程序池的名稱時創建的。- 「IIS APPPOOL \ AppPoolName」用戶默認爲
IIS_IUSRS
組的成員。 - 如果你是在完全信任運行Web應用程序可以寫入到文件系統的許多地區(不包括文件夾一樣
C:\Users
,C:\Windows
等)。例如,您的應用程序將有權寫入某些文件夾,例如C:\dump
。 - 默認情況下,
IIS_IUSRS
組沒有給出讀取或寫入訪問C:\dump
(至少不能訪問可見通過在Windows資源管理器的「安全」選項卡)。 - 如果您拒絕對
IIS_IUSRS
的寫入訪問權限,則在嘗試寫入文件夾時(如預期的那樣),您將收到SecurityException。
因此,考慮到所有這些因素,如何授予「IIS APPPOOL \ AppPoolName」用戶的寫權限? w3wp.exe進程以該用戶身份運行,因此允許此用戶寫入文件夾似乎沒有顯式訪問權限?
請注意,我理解這可能是做了方便起見,因爲它是授予它需要寫如果你是在完全信任運行的每一個文件夾的用戶訪問一個痛。如果您想限制此訪問權限,則可以始終在中信任下運行該應用程序。我有興趣瞭解操作系統和/或IIS允許這些寫入發生的方式,即使似乎沒有授予明確的文件系統訪問權限。
@Kev [+1]我張貼的應用程序池標識regardin NTFS權限類似的問題在這裏:http://stackoverflow.com/questions/11232675/applications-apppool-permisions-on-parent-site-文件夾結構 - 如果你看一看,我將不勝感激。 – 2012-06-27 19:09:06
@ one.beat.consumer - 抱歉,我從未看到您的評論。你仍然堅持這個問題? – Kev 2012-09-19 03:10:27
@Kev - 是的,它已經不再成爲一個問題了,因爲我已經被撇到其他廢話,但它仍然沒有解決。有什麼想法嗎? – 2012-09-20 17:15:29