Я пытаюсь добавить некоторые правила доступа к разделу реестра, на который у меня нет прав, но я администратор и использую команду "Run as administrator"
в меню правой кнопки мыши.
К сожалению, исключение выдается (System.UnauthorizedAccessException
).
При запуске regedit.exe
в качестве администратора я могу изменить права на этот ключ без каких-либо проблем.
Как добавить любое правило доступа к этому ключу в моем приложении?
RegistryKey root = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\some_key", RegistryKeyPermissionCheck.ReadWriteSubTree);
RegistrySecurity security = new RegistrySecurity();
SecurityIdentifier sec = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
RegistryAccessRule rule = new RegistryAccessRule(sec, RegistryRights.ReadKey | RegistryRights.QueryValues, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow);
security.AddAccessRule(rule);
root.SetAccessControl(security);
root.Close();