使用 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 文件时修复访问拒绝错误