Настройки безопасности реестра - PullRequest
2 голосов
/ 23 августа 2010

Я пытаюсь получить доступ к определенному фрагменту реестра, но он продолжает возвращать ноль, когда я пытаюсь открыть его.

Однако я знаю, что местоположение правильное, потому что я могу перейти к нему в reedit.

вот моя строка кода для попытки доступа к нему.

Microsoft.Win32.RegistryKey RK = Microsoft.Win32.Registry.LocalMachine.OpenSubK("Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData", false);

кто-нибудь есть идеи?

обновление

похоже, что я вижу другую версию реестра, это должно быть 32-битное приложение, но оно должно иметь возможность видеть 32-битную и 64-битную версию регистра.

Спасибо

Ответы [ 3 ]

0 голосов
/ 23 августа 2010

Как работает ваше приложение?Другими словами, в каком контексте работает ваше приложение?Это запускается двойным нажатием на .exe или приложение установки запускает процесс?Установочные приложения работают в другом контексте, чем вы ожидаете.

0 голосов
/ 30 января 2015
 var tempKey = Registry.LocalMachine;

и для безопасного доступа

var rule = new RegistryAccessRule(LOGON_USER_NAME, RegistryRights.FullControl, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow);
var security = new RegistrySecurity();
security.AddAccessRule(rule);
tempKey.SetAccessControl(security);

 tempKey = tempkey.OpenSubKey(SUB_KEY, RegistryKeyPermissionCheck.ReadWriteSubTree);

и для LOGON_USER_NAME

1)

var LOGON_USER_NAME = Environment.UserName;

2)

var LOGON_USER_NAME = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
0 голосов
/ 23 августа 2010

Применяли ли вы разрешения для доступа к разделу реестра через атрибут [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.LinkDemand, Flags = System.Security.Permissions.SecurityPermissionFlag.RegistryPermission)] или запускаете программу от имени администратора? Вот подробный взгляд на Разрешения безопасности согласно MSDN , более точно RegistryPermission

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...