Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除所有目录权限_C#_.net_Security_Permissions - Fatal编程技术网

C# 删除所有目录权限

C# 删除所有目录权限,c#,.net,security,permissions,C#,.net,Security,Permissions,在C#(2.0)中,如何删除对目录的所有权限,以便限制访问。我将向有限的一组用户添加访问权限。这里是CodeProject中关于Windows ACL编程的一组很棒的文章: 本系列的第1部分显示了特定于.NET的方法。System.IO.Directory.GetAccessControl(),然后编辑返回的FileSecurity对象。查看命名空间中的类,尤其是方法 此外,如果您删除了所有权限,那么您将无法在以后添加任何内容:-)免责声明:我意识到这已经被回答和接受,我真的想将其作为评论发布

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

这里是CodeProject中关于Windows ACL编程的一组很棒的文章:


本系列的第1部分显示了特定于.NET的方法。

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

查看命名空间中的类,尤其是方法

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

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

我也希望这样做,发现了你的问题。斯图的回答帮助我想出了这个解决方案。(请注意,我只对删除显式安全感兴趣)

这显然是用来如下:

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

几乎一样^^我现在更改了它。一个完全有效的附加答案!很好的解决方案,但我认为你应该称它为RemoveEXPLICIT not implicit,因为你正在删除这里的显式规则。这应该标记为正确答案。不需要免责声明。我发现这个工具对检查我的代码很有用。它显示了目录权限ns在文件夹层次结构中设置。即,仅在设置权限的位置,而不是继承权限的位置-
DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
directorySecurity = RemoveExplicitSecurity(directorySecurity);
Directory.SetAccessControl(path, directorySecurity);