在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