У меня возникли проблемы с программным назначением разрешений для записей папок/записей. Мне удалось присвоить наследование разрешений, используя следующий код:C# - Windows ACL - Применение унаследованных разрешений
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 в , А не наоборот. Вы пытались создать ACL на Test? –