我正在處理作爲特殊非特權用戶運行的應用程序。我希望能夠輕鬆檢查用戶是否可以讀取給定的文件。看起來這應該很容易,即使當我進入Windows資源管理器中的文件並且看到讀取權限被選中時,它有時似乎仍然有某些東西阻止用戶讀取文件(例如父目錄用戶無法瀏覽)當我嘗試以編程方式讀取它作爲用戶。什麼是檢查特定用戶是否可以訪問特定文件的好方法?
用戶沒有控制檯登錄權限,所以我不能僅以用戶身份登錄並嘗試讀取該文件。
所以......
如果我想知道,「難道UserBob
訪問文件c:\specialPath\specialFile
,什麼是要找出一個簡單的方法?順便說一句,我的環境是Windows Server 2003
更新:爲了澄清,我想要做這樣的事情:
if UserHasAccess(UserBob, @"c:\specialPath\specialFile") { doStuff(); } else { // error handling }
更新:
我收到一個答案,提示我只是試圖打開該文件。問題是打開文件的代碼在特殊的系統帳戶下運行,並封裝在另一個庫中。因此,讓我問一下:如何讓我的代碼試圖打開以特殊系統帳戶運行的文件。假設我有管理員對代碼運行的機器的訪問權限。
好的,我應該更具體。我正在使用一些.net代碼。有沒有簡單的方法來嘗試打開文件爲'UserBob'? – 2010-05-12 03:09:24
UserBob是一個與您的應用程序運行的用戶不同的*用戶嗎? – 2010-05-12 03:38:06
是的,codeka,'UserBob'是與運行應用程序的用戶不同的用戶。事實上,UserBob和運行該應用程序的用戶都可能是沒有直接登錄權限的「系統」帳戶。 我想有一些代碼,說是這樣的:如果 UserHasAccess(UserBob,@ 「C:\ specialPath \ specialFile」) { doStuff(); } 其他 { //錯誤處理 } – 2010-05-12 13:39:48