给定一个文件,我需要列出所有使用C#和.NET framework 4对该文件具有读访问权限的用户。不想添加或列出任何其他权限。 假设目录是本地目录,本地用户就足够了。
答案 0 :(得分: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以获取更多信息。