删除所有目录权限
查看System.Security.AccessControl命名空间中的类,特别是DirectorySecurity.RemoveAccessRule方法。
此外,如果删除了所有的权限,那么你将不能够添加任何回之后:-)
System.IO.Directory.GetAccessControl()然后编辑返回的FileSecurity对象。
目录budy。 – 2009-09-18 15:57:39
差不多^^我现在改了它。 – codymanix 2009-09-18 16:11:00
免责声明:我知道这已经回答了,接受了,我真的想后这作为评论接受的答案,但无法格式评论迫使我张贴这个答案(这在技术上,它是)... ...
我正在寻找做的相同,并找到你的问题。 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;
}
这显然是使用如下:
DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
directorySecurity = RemoveExplicitSecurity(directorySecurity);
Directory.SetAccessControl(path, directorySecurity);
我发现这个工具对检查我的代码工作确实很有用。它显示您在文件夹层次结构中设置的目录权限。即只在权限设置的地方,而不是继承 - http://www.youtube.com/watch?v=aZLIioUl-5k – pfeds 2013-09-09 04:02:49