使用 C# 以编程方式删除“包括来自此对象父级的可继承权限”复选框

Posted

技术标签:

【中文标题】使用 C# 以编程方式删除“包括来自此对象父级的可继承权限”复选框【英文标题】:programatically removing "Include inheritable permissions from this object's parent" checkbox using C# 【发布时间】:2011-09-28 06:53:27 【问题描述】:

我的应用程序需要遍历所有子文件夹 。

并且还将继承的父权限转换并添加为文件夹的显式权限。

谁能告诉我?我如何在 C# 中做到这一点。

【问题讨论】:

这听起来像是一个奇怪的要求。您确定提供此要求的人确实了解 NT 安全性吗? 查看redmondpie.com/… 和weblogs.asp.net/cumpsd/archive/2004/02/08/69403.aspx 或查看***.com/questions/429864/c-file-directory-permissions。希望他们能给你一些想法 好吧,我们需要从子目录中删除所有人组并将组保留在父目录中。因此,应该从子目录中删除每个人组,这是子目录以及其他一些组的继承属性。所以,首先要删除这个所有人组。 【参考方案1】:

你需要使用ObjectSecurity.SetAccessRuleProtection:

string path = @"...";
FileSecurity fs = File.GetAccessControl(path);
fs.SetAccessRuleProtection(true, false);
File.SetAccessControl(path, fs);

【讨论】:

谢谢你。我尝试使用 RemoveAccessRule 和 RemoveAccessRuleAll 但对我不起作用。也许是因为那些是继承权?

以上是关于使用 C# 以编程方式删除“包括来自此对象父级的可继承权限”复选框的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式从 .NET 中的注册表中删除 Windows 产品密钥?

如何在 C# 的线程中以编程方式复制 Excel 文件时修复访问拒绝错误

WinForm C#如何将方法附加到以编程方式创建的控件

如何使用 c# 检查 OpenOffice 是不是以编程方式安装

使用 C# 以编程方式运行命令行代码

用c#以编程方式编译生成的.cpp文件?