如何从C#设置文件夹ACL

如何在C#中自动执行以下手动步骤?

  • 右键单击Windows资源管理器中的文件夹;

    Properties -> Security -> Advanced -> Edit

  • 取消选中“包括此对象的父级的可inheritance权限”,然后单击“删除”。

  • 单击“添加”,选择一个组并授予其“修改”权限。

我发现这篇文章 ,看起来就像我需要的,但我没有,也找不到Microsoft.Win32.Security

检查下面的代码:

 DirectoryInfo dInfo = new DirectoryInfo(strFullPath); DirectorySecurity dSecurity = dInfo.GetAccessControl(); //check off & copy inherited security setting dSecurity.SetAccessRuleProtection(true, true); dInfo.SetAccessControl(dSecurity); 

http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.objectsecurity.setaccessruleprotection.aspx

这用于设置文件夹的权限:

http://www.redmondpie.com/applying-permissions-on-any-windows-folder-using-c/

我不知道那个,但您应该能够通过System.Security.AccessControl命名空间中的DirectorySecurity类来实现。

我假设您可能也想查看InheritanceFlags枚举。