【发布时间】:2010-11-27 13:24:57
【问题描述】:
我在以编程方式为文件夹/注册表项分配权限时遇到问题。我已设法使用以下代码分配继承权限:
FileSystemAccessRule rule = new FileSystemAccessRule(LOGON_USER_NAME,
FileSystemRights.FullControl, InheritanceFlags.ContainerInherit |
InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly,
AccessControlType.Allow);
DirectorySecurity security = new DirectorySecurity();
security.SetAccessRule(rule);
Directory.CreateDirectory(dir);
Directory.SetAccessControl(dir, security);
这会正确设置我以管理员身份创建的所有子文件夹的文件权限。但是,它不会设置dir 文件夹本身的权限。我已经玩弄了一些继承和传播的排列,但没有任何乐趣。
例如,我有:
dir = %programfiles%\Test
如果我在测试 (%programfiles%\Test\SubFolder) 中创建了一个文件夹,我为我的用户分配了完全权限,但我没有 %programfiles%\Test 的完全权限。这真的很烦人,因为我想给我的用户完全权限,让他们也可以对 Test 目录做任何事情。
我在注册表权限方面遇到了类似的问题,但我相信如果我能解决一个问题,我就能解决两个突出的问题。
有人知道如何解决吗?
问候
特里斯
【问题讨论】:
-
SubFolder 是 Test 的子对象,因此它继承了 Test 的规则,而不是相反。您是否尝试过在测试中创建 ACL?
标签: c# windows permissions acl