У меня возникли проблемы с изменением значения реестра с помощью C #.
Вот проблема:
я пытаюсь отключить соединение через Windows Логин и пароль с помощью C #.
Я добавил значение реестра в реестр, чтобы сделать его доступным или нет, в зависимости от состояния флажка.
У меня он работал на виртуальной машине Windows 10, однако при использовании его на Windows Server 2012 я получаю следующее исключение:
"Доступ к разделу реестра '...' запрещен."
Вот мой код:
System.Security.AccessControl.RegistrySecurity userSecurity = new System.Security.AccessControl.RegistrySecurity();
System.Security.AccessControl.RegistryAccessRule userRule = new System.Security.AccessControl.RegistryAccessRule("Everyone", System.Security.AccessControl.RegistryRights.FullControl, System.Security.AccessControl.AccessControlType.Allow);
userSecurity.AddAccessRule(userRule);
using (RegistryKey key = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers" + "\\" + @"{60b78e88-ead8-445c-9cfd-0b87f74ea6cd}", RegistryKeyPermissionCheck.ReadWriteSubTree, userSecurity))
{
key.OpenSubKey(Const.REG_HKLM + @"SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers" + "\\" + @"{60b78e88-ead8-445c-9cfd-0b87f74ea6cd}", true);
if (!paramAuthentication.IsCkbLoginPwChecked())
{
key.SetValue("Disabled", 1, RegistryValueKind.DWord);
}
else
{
key.SetValue("Disabled", 0, RegistryValueKind.DWord);
}
key.Close();
}
И многочисленные решения, которые я нашел на форумах:
1) _ Запуск от имени администратора -> Не работает
2) _ Вручную измените разрешения соответствующего подраздела -> Получена ошибка «Невозможно сохранить изменения разрешений в« ... ». Доступ запрещен.
3) _ Определите текущего пользователя как владельца ключа -> я еще не пробовал. Но некоторые моменты меня беспокоят:
Во-первых, эта функция должна быть доступна для всех пользователей.
Кроме того, я создаю это значение ключа через право реестра FullControl.
И, наконец, почему он должен работать на Windows Server, в то время как он уже работает на Windows 10
В этом я определенно что-то упустил. Что именно означает «получить право владения ключом»?
Любая идея или урок, чтобы предоставить мне?