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