在C#中禁用文件夹NTFS权限的继承

4

如何在文件夹上禁用继承并删除所有继承的权限?

谢谢。

我尝试了以下方法:

DirectoryInfo dInfo = new DirectoryInfo(path);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.SetAccessRuleProtection(false, false);

3
不要成为“求助吸血鬼”。展示一下你的研究和尝试过的方法,并解释为什么它们没有奏效。帮助我们来帮助你。 - rory.ap
我尝试了这个: DirectoryInfo dInfo = new DirectoryInfo(path); DirectorySecurity dSecurity = dInfo.GetAccessControl(); dSecurity.SetAccessRuleProtection(false, false); - Mati24
不要把那个放在评论里 - 更新你的问题。同时也要说明它为什么不起作用。 - rory.ap
你的代码有什么问题? - rory.ap
没有任何附加内容和错误,我认为我不必使用SetAccessRuleProtection,但我找不到其他的东西。 - Mati24
请提供一个可靠地重现您遇到的任何问题的良好的 [mcve]。同时,请提供关于该代码的精确解释以及您希望它代替做什么。 - Peter Duniho
1个回答

12

如果有人搜索解决方案:

        DirectorySecurity directorySecurity = Directory.GetAccessControl(path);
        directorySecurity.SetAccessRuleProtection(true, keepPermissions);
        Directory.SetAccessControl(path, directorySecurity);

如果你想保留继承的权限,请将keepPermissions设置为true。


你的问题表明你想要"删除所有继承权限"。那么,发布一段允许你"保留继承权限"的代码怎么能符合你所提出问题的答案呢? - Peter Duniho
3
如果有人想保留权限,只删除继承,那么他也可以得到答案。这是个问题吗? - Mati24
为了节省时间,对于使用.NET Standard 2.0的用户,请使用DirectoryInfo.Get/SetAccessControl方法。 - DrBB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接