删除所有目录权限(Remove All Directory Permissions)

2019-07-18 12:30发布

在C#(2.0)怎样删除所有权限的目录,这样我就可以限制访问。 我会添加访问回一组有限的用户。

Answer 1:

看看在类System.Security.AccessControl命名空间,尤其是DirectorySecurity.RemoveAccessRule方法。

此外,如果您删除所有的权限,那么你将不能够添加任何回之后:-)



Answer 2:

免责声明:我知道这已经回答了,接受了,我真的想张贴此为接受的答案评论,然而能够格式化的意见不能迫使我张贴此作为一个答案(从技术上讲,它是)....

我一直在寻找做同样的,发现你的问题。 斯图的回答帮我想出了这个解决方案。 (请注意,我只是在移除显式安全感兴趣)。

private static DirectorySecurity RemoveExplicitSecurity(DirectorySecurity directorySecurity)
{
    AuthorizationRuleCollection rules = directorySecurity.GetAccessRules(true, false, typeof(System.Security.Principal.NTAccount));
    foreach (FileSystemAccessRule rule in rules)
        directorySecurity.RemoveAccessRule(rule);
    return directorySecurity;
}

这显然是使用方法如下:

DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
directorySecurity = RemoveExplicitSecurity(directorySecurity);
Directory.SetAccessControl(path, directorySecurity);


Answer 3:

这是一个伟大的一套有关Windows ACL编程从CodeProject文章:

在Windows访问控制模型

第3部分的系列展示.NET的具体方法。



Answer 4:

System.IO.Directory.GetAccessControl(),然后编辑返回FileSecurity对象。



文章来源: Remove All Directory Permissions