2009-05-26 77 views
0

我有一種搜索算法試圖解析本地驅動器上目錄的位置。如果目錄正在搜索其中一個目錄的子目錄,那麼該目錄顯然需要訪問系統上的其他目錄。但是在這樣做的過程中,我不斷收到UnauthorizedAccessException。獲取活動用戶的訪問權限

我想爲搜索機制提供活動用戶在運行時的訪問權限,我該如何實現這一點。

+1

您可能希望包含更多關於您正在使用的編程語言/框架的信息。 – Marplesoft 2009-05-26 20:33:28

+0

你在使用什麼操作系統? – 2009-05-26 20:43:55

回答

0

在大多數情況下,正確的答案是你不應該。

你的算法應該捕獲UnauthorizedAccessException,接受它將不被允許進一步瀏覽該文件夾,並且像文件夾一樣行爲是空的。

這意味着有時你會得到一個答案,即當它在技術上存在時,你正在查找的目錄不存在。沒關係。這是它應該的方式。如果你沒有權限,它不適合你。

受其他用戶權限保護的文件夾是「私人」的。 「Joe」運行的程序不應該查看屬於「Mary」的文件夾。這是權限的全部。

該規則的受控例外很少。衆所周知,無論文件夾權限如何,磁盤備份和防病毒應用程序都需要能夠瀏覽整個磁盤。他們通過建立一個在高度特權帳戶下運行的服務(可能是「系統」,也許是別的)來這樣做。它可能是一個持有SeBackupPrivilege的帳戶。

你可以爲你的程序做到這一點,如果你真的需要掃描整個磁盤,但對於大多數應用場景你真的不應該這樣做。只有像防病毒軟件或備份程序這樣的機器級維護應用程序應該具有這種權限。

這不是「過度殺傷」;這是「錯誤的」。它不按規則玩。