Поделиться через


Практическое руководство. Создание раздела реестра и установка его значения в Visual Basic

Метод CreateSubKeyMy.Computer.Registry объекта можно использовать для создания раздела реестра.

Процедура

Чтобы создать ключ реестра

  • Используйте метод CreateSubKey, указав, под какой улей следует поместить ключ, а также имя ключа. Параметр Subkey не учитывает регистр. В этом примере создается ключ MyTestKey в разделе HKEY_CURRENT_USER.

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    

Создайте ключ реестра и задайте значение в нем

  1. Используйте метод CreateSubkey, указав, под какой улей следует поместить ключ, а также имя ключа. В этом примере создается ключ MyTestKey в разделе HKEY_CURRENT_USER.

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    
  2. Задайте значение с помощью метода SetValue. Этот пример задает строковое значение. "MyTestKeyValue" в "Это тестовое значение".

    My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
      "MyTestKeyValue", "This is a test value.")
    

Пример

В этом примере создается раздел реестра MyTestKey в HKEY_CURRENT_USER, а затем устанавливает строковое значение MyTestKeyValue в This is a test value.

My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
' Change MyTestKeyValue to This is a test value.
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
  "MyTestKeyValue", "This is a test value.")

Надежное программирование

Изучите структуру реестра, чтобы найти подходящее расположение для ключа. Например, может потребоваться открыть HKEY_CURRENT_USER\Software ключ текущего пользователя и создать ключ с именем вашей компании. Затем добавьте значения реестра в ключ вашей компании.

При чтении реестра из веб-приложения текущий пользователь зависит от проверки подлинности и олицетворения, реализованной в веб-приложении.

Это более безопасно для записи данных в папку пользователя (CurrentUser), а не на локальный компьютер (LocalMachine).

При создании значения реестра необходимо решить, что делать, если это значение уже существует. Другой процесс, возможно, уже создал этот параметр, причем он может быть злонамеренным, и имеет к нему доступ. При вставке данных в значение реестра данные доступны для другого процесса. Чтобы предотвратить это, используйте GetValue метод. Возвращает Nothing, если ключ еще не существует.

Небезопасно хранить секреты, такие как пароли, в реестре как обычный текст, даже если раздел реестра защищен списками управления доступом (списки управления доступом).

Следующие условия могут вызвать исключение:

Безопасность .NET Framework

Для выполнения этого процесса сборке требуется привилегированный доступ, предоставленный классом RegistryPermission. Если вы работаете в контексте частичного доверия, процесс может вызвать исключение из-за нехватки привилегий. Аналогичным образом, у пользователя должны быть корректные ACL для создания или изменения параметров. Например, локальное приложение с разрешением на доступ к коду может не иметь разрешения операционной системы. Дополнительные сведения см. в разделе Основы безопасности доступа к коду.

Замечание

Безопасность доступа к коду (CAS) устарела во всех версиях платформ .NET Framework, и .NET. Последние версии .NET не учитывают заметки CAS и создают ошибки, если используются API, связанные с CAS. Разработчики должны искать альтернативные средства выполнения задач безопасности.

См. также