У меня проблема с программным чтением значения реестра с использованием 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, я получаю исключение: «Запрошенный доступ к реестру запрещен».
Я плохозастрял и не может продолжить.Пожалуйста, помогите