删除所有目录权限

C. *_*oss 11 .net c# security permissions

在C#(2.0)中如何删除目录的所有权限,因此我可以限制访问权限.我将向一组有限的用户添加访问权限.

Bry*_*yan 21

免责声明:我意识到这已经得到了回答和接受,我真的想发布这个作为对已接受答案的评论,但是无法格式化评论迫使我发布这个作为答案(从技术上讲,它是)....

我当时也想做同样的事情,并找到了你的问题.Stu的回答帮助我提出了这个解决方案.(请注意,我只对删除显式安全性感兴趣).

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;
}
Run Code Online (Sandbox Code Playgroud)

这显然用作如下:

DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
directorySecurity = RemoveExplicitSecurity(directorySecurity);
Directory.SetAccessControl(path, directorySecurity);
Run Code Online (Sandbox Code Playgroud)


Stu*_*lar 8

查看System.Security.AccessControl命名空间中的类,尤其是DirectorySecurity.RemoveAccessRule方法.

此外,如果您删除所有权限,那么之后您将无法添加任何权限:-)