У меня есть проблема с чтением значения реестра программно с использованием C#. Я просмотрел многие сайты и помог, но не нашел ничего полезного. Я могу получить доступ и прочитать реестр, когда я запускаю VS в режиме с выделением, но сталкиваюсь с проблемой при запуске VS с повышенным режимом. Первоначально я начал с кодом нижеПроблема при обращении к реестру программно
byte[] val = (byte[])Registry.GetValue("HKEY_LOCAL_MACHINE\\Software\\MyServices\\Identity\\ASPNET_SETREG", "ValueName", 0);
Это работало отлично с повышенным режимом, но не может в не повышенном режиме. Размещенные атрибут сверху функции
[RegistryPermissionAttribute(SecurityAction.Demand,Unrestricted=true)]
Это не помогло. Затем Пробят
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.LinkDemand, Flags = System.Security.Permissions.SecurityPermissionFlag.AllFlags)]
Все еще не работает. Теперь я Пробовал ниже код ...
RegistryKey key = Registry.LocalMachine;
RegistrySecurity rs = new RegistrySecurity();
rs = key.GetAccessControl();
string user = "DomainName\\Username";
rs.AddAccessRule(new RegistryAccessRule(user,
RegistryRights.ReadKey,
InheritanceFlags.None,
PropagationFlags.None,
AccessControlType.Allow));
key.SetAccessControl(rs);//Exception: "Attempted to perform an unauthorized operation."}
//RegistryKey key2 = key.OpenSubKey("Software\\MyServices\\Identity\\ASPNET_SETREG");
//RegistryKey key2 = key.OpenSubKey("Software\\MyServices\\Identity\\ASPNET_SETREG", false);
//RegistryKey key2 = key.OpenSubKey("Software\\MyServices\\Identity\\ASPNET_SETREG", RegistryKeyPermissionCheck.ReadSubTree);
RegistryKey key2 = key.OpenSubKey("Software\\MyServices\\Identity\\ASPNET_SETREG", RegistryKeyPermissionCheck.ReadSubTree, RegistryRights.ReadPermissions);
Комментируя SetAccessControl и использовать любого из опции OpenSubkey, я получаю исключение: «доступ к запрошенному реестра не допускается.»
Я плохо затормозил и не смог продолжить. Пожалуйста, помогите
Попробуйте перейти к разделу реестра, используя 'regedit'; щелкните правой кнопкой мыши по ключу и выберите опцию _Permissions_. – LiquidPony
Вспомнил, я пытался сделать это раньше! – Murthy
Странно, я вижу, что владелец Creater не имеет полного контроля или разрешения на чтение, но система, администратор и пользователи имеют полный контроль и разрешения на чтение. У владельца создателя есть только специальные разрешения. Поэтому нажал на расширенный ... На вкладке «Разрешения» я вижу владельца Creator, разрешение распространяется только на дочерние элементы, но для других это разрешение применяется к этому ключу и подразделам! это меня удивляет! – Murthy