2009-09-25 75 views
2

有沒有辦法在當前的ASP.NET應用程序之外訪問文件系統,而不必提供IIS_IUSRS權限?例如,如果我想這條線的工作:ASP.NET - 讀寫文件系統,在應用程序之外

logStream = File.Open("C:\logs\app.log", FileMode.Append, FileAccess.Write, FileShare.ReadWrite); 

...我不得不常授予讀取/寫入權限C:\logs\app.logIIS_IUSRS組。這使得在新系統上設置應用程序變得煩人,需要訪問的目錄可能位於不同的位置。有什麼辦法可以告訴ASP.NET它應該訪問哪些目錄?

回答

6

你可以使用模擬做到這一點,但我會敦促你不要這樣做。就安全而言,您正在進入風險很大的領域。如果您不是100%確定您正在冒充的身份的訪問權限,那麼您將面臨真正的風險,即允許黑客訪問您不想要的服務器區域。正確設置ACL非常耗時,並且您不希望僅使用管理用戶或超級用戶。您希望專門爲此設置用戶,如果您正在這樣做,那麼您只是爲您已經在做的工作添加了一個步驟。

更好的解決方案是將您的應用程序設計爲寫入應用程序控制的文件夾。您的安裝可以在機器上創建文件夾並自動授予權限,而不是依賴於現有的系統文件夾。

http://msdn.microsoft.com/en-us/library/ms998258.aspx#pagguidelines0001_impersonationdelegation

2

您還可以設置您的程序池用適當憑據的帳戶下運行。

相關問題