как установить разрешения на полный контроль в реестре c #

#c# #forms #regedit

#c# #формы #regedit

Вопрос:

У меня есть ключ с именем «a», расположенный в HKLM SOFTWARE
Для этого разрешения установлено значение Deny… Я пытаюсь установить для него такой полный контроль:

      using (RegistryKey rk =
        Registry.LocalMachine.OpenSubKey(@"SOFTWAREa"))
                {
                    string gname = Environment.UserDomainName   @""   Environment.UserName;
                    RegistrySecurity rs = new RegistrySecurity();
                    rs.AddAccessRule(new RegistryAccessRule(gname, RegistryRights.ReadKey, AccessControlType.Allow));
                    rk.SetAccessControl(rs);
                }
  

но он выдает исключение в

     using (RegistryKey rk =
        Registry.LocalMachine.OpenSubKey(@"SOFTWAREa"))
  

сообщение о том, что «Запрошенный доступ к реестру запрещен».
Есть идеи?

Ответ №1:

RegistryKey.LocalMachine.OpenSubKey(@"SOFTWAREa") не открывает ключ для записи. Попробуйте использовать RegistryKey.LocalMachine.OpenSubKey(@"SOFTWAREa", true) перегрузку, чтобы указать, что вы хотите, чтобы ключ был доступен для записи.