У меня были проблемы с программным назначением разрешений для папок / записей реестра. Мне удалось назначить права наследования, используя следующий код:
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.
У меня похожие проблемы с разрешениями реестра, но я считаю, что если я смогу их решить, то смогу решить обе нерешенные проблемы.
Кто-нибудь знает, как это можно решить?
Привет
Трис