2010-09-02 94 views
3

如何在C#中自动执行以下手动步骤?如何从C#设置文件夹ACL#

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

    Properties -> Security -> Advanced -> Edit

  • 取消选中“包括可从该对象的父项的继承权限”,然后单击删除。

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

我发现this article,它看起来像正是我需要的,但我没有和不能找到Microsoft.Win32.Security

回答

3

检查下面的代码:

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/

1

我不知道那个,但你应该可以通过System.Security.AccessControl命名空间中的DirectorySecurity类来完成。

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

+0

谢谢你的回答,ID已经接受了两个,如果我能 – 2010-09-02 11:44:40

+0

@Andrew:没问题,Aneef明显地把更多的精力投入到他的工作中,使其成为一个更全面的答案,被接受。 – 2010-09-02 12:04:56