CreateSubKey
개체의 메서드를 My.Computer.Registry
사용하여 레지스트리 키를 만들 수 있습니다.
절차
레지스트리 키를 만들려면
CreateSubKey
키를 배치할 하이브와 키 이름을 지정하는 메서드를 사용합니다. 매개 변수Subkey
는 대/소문자를 구분하지 않습니다. 이 예제에서는 HKEY_CURRENT_USER 아래에 레지스트리 키를MyTestKey
만듭니다.My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
레지스트리 키를 만들고 해당 키에 값을 설정하려면
CreateSubkey
키를 배치할 하이브와 키 이름을 지정하는 메서드를 사용합니다. 이 예제에서는 HKEY_CURRENT_USER 아래에 레지스트리 키를MyTestKey
만듭니다.My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
SetValue
메서드를 사용하여 값을 설정합니다. 다음은 문자열 값을 설정하는 예제입니다. "MyTestKeyValue"에서 "테스트 값입니다".My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey", "MyTestKeyValue", "This is a test value.")
예시
다음은 HKEY_CURRENT_USER 아래에 레지스트리 키를 MyTestKey
만든 다음 문자열 값을 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
됩니다.
레지스트리 키가 ACL(액세스 제어 목록)로 보호되더라도 암호와 같은 비밀을 일반 텍스트로 레지스트리에 저장하는 것은 안전하지 않습니다.
다음 조건에서 예외가 발생합니다.
키의 이름은 (
Nothing
)입니다 ArgumentNullException .사용자에게 레지스트리 키(SecurityException)를 만들 수 있는 권한이 없습니다.
키 이름이 255자 제한(ArgumentException)을 초과합니다.
키가 닫혔습니다(IOException).
레지스트리 키는 읽기 전용(UnauthorizedAccessException)입니다.
.NET Framework 보안
이 프로세스를 실행하려면 어셈블리에 클래스에서 부여한 RegistryPermission 권한 수준이 필요합니다. 부분 신뢰 컨텍스트에서 실행하는 경우 프로세스가 권한 부족으로 인해 예외를 throw할 수 있습니다. 마찬가지로 사용자에게 설정 만들기 또는 쓰기에 대한 올바른 ACL이 있어야 합니다. 예를 들어 코드 액세스 보안 권한이 있는 로컬 애플리케이션에는 운영 체제 권한이 없을 수 있습니다. 자세한 내용은 Code Access Security Basics을 참조하세요.
비고
CAS(코드 액세스 보안)는 .NET Framework 및 .NET의 모든 버전에서 더 이상 사용되지 않습니다. 최신 버전의 .NET은 CAS 주석을 준수하지 않으며 CAS 관련 API를 사용하는 경우 오류가 발생합니다. 개발자는 보안 작업을 수행하는 대체 수단을 찾아야 합니다.
참고하십시오
.NET