我一直在以编程方式为文件夹/注册表项分配权限时遇到问题。我已设法使用以下代码分配继承权限:
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
如果我在 test ( %programfiles%\Test\SubFolder
) 中创建了一个文件夹,我为我的用户分配了完全权限,但我没有完全权限%programfiles%\Test
。这真的很烦人,因为我想给我的用户完全的权限来对 Test 目录做任何事情。
我在注册表权限方面遇到了类似的问题,但我相信如果我能解决一个问题,我就能解决两个突出的问题。
有谁知道如何解决这个问题?
问候
特里斯