我正在处理作为特殊非特权用户运行的应用程序。我希望能够轻松检查用户是否可以读取给定的文件。看起来这应该很容易,即使当我进入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