2016-12-27 2 views
0

Мне нужно получить доступ к разделу реестра, чтобы сохранить пароль, установленный пользователем. По какой-то причине RegistryKey key = Registry.LocalMachine.OpenSubKey("Software", true); выбрасывает ошибку SecurityException. Я попытался получить соответствующие разрешения с этой коррекцией:SecurityException, вызванное во время вызова OpenSubkey

RegistryKey key = Registry.LocalMachine.OpenSubKey("Software", RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.WriteKey); 

, но ошибка по-прежнему сохраняется. Какие-либо предложения? Я бы добавил, что этот код отлично работает, когда решение развертывается и запускается в полной учетной записи администратора. Стандартные учетные записи пользователей инициируют это исключение.

+1

У вас нет доступа к 'HKEY_LOCAL_MACHINE \ Software'. – Amy

+0

Большое спасибо. Это решило мою проблему. –

+0

Вы действительно хотите сохранить пароль в реестре? Даже если вы это сделаете, убедитесь, что он по крайней мере зашифрован. – StillLearnin

ответ

1

У вас нет разрешения писать в HKEY_LOCAL_MACHINE как пользователь, не являющийся администратором.

Нужно ли это «сохранять» для всего компьютера?

Если это не так, вы можете использовать

RegistryKey key = Registry.CurrentUser.OpenSubKey("the registry full path"); 
Смежные вопросы