-2

给定一个文件,我需要使用 C# 和 .NET 框架 4 列出对该文件具有读取权限的所有用户。对添加或列出任何其他权限不感兴趣。假设目录是本地目录,本地用户就足够了。

4

1 回答 1

0

我不确定是否有一种简单的方法可以获取该列表,但这里有一个想法。您可以遍历访问控制规则并检查哪些用户可以读取文件。请注意,某些规则允许访问,而其他规则则拒绝访问。这是一个起点:

using System.IO;
using System.Security.AccessControl;

...

FileSecurity security = File.GetAccessControl(@"C:\MyFolder\My File.txt");

AuthorizationRuleCollection acl = security.GetAccessRules(
   true, true, typeof(System.Security.Principal.NTAccount));
foreach (FileSystemAccessRule ace in acl)
{
   var user = ace.IdentityReference.Value;
   var rights = ace.FileSystemRights;
   var allowOrDeny = ace.AccessControlType;
   // ...
}

检查FileSystemAccessRule以获取更多信息。

于 2012-10-24T13:54:53.903 回答