Delen via


Procedure: Een registersleutel maken en de waarde ervan instellen in Visual Basic

De CreateSubKey methode van het My.Computer.Registry object kan worden gebruikt om een registersleutel te maken.

Werkwijze

Een registersleutel maken

  • Gebruik de CreateSubKey methode om op te geven onder welke hive de sleutel moet worden geplaatst, evenals de naam van de sleutel. De parameter Subkey is niet hoofdlettergevoelig. In dit voorbeeld wordt de registersleutel MyTestKey gemaakt onder HKEY_CURRENT_USER.

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

Een registersleutel maken en er een waarde in instellen

  1. Gebruik de CreateSubkey methode om op te geven onder welke hive de sleutel moet worden geplaatst, evenals de naam van de sleutel. In dit voorbeeld wordt de registersleutel MyTestKey gemaakt onder HKEY_CURRENT_USER.

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    
  2. Stel de waarde in met de SetValue methode. In dit voorbeeld wordt de tekenreekswaarde ingesteld. 'MyTestKeyValue' op 'Dit is een testwaarde'.

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

Voorbeeld

In dit voorbeeld wordt de registersleutel MyTestKey onder HKEY_CURRENT_USER gemaakt en wordt vervolgens de tekenreekswaarde MyTestKeyValue ingesteld op 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.")

Robuuste programmering

Bekijk de registerstructuur om een geschikte locatie voor uw sleutel te vinden. U kunt bijvoorbeeld de HKEY_CURRENT_USER\Software sleutel van de huidige gebruiker openen en een sleutel maken met de naam van uw bedrijf. Voeg vervolgens de registerwaarden toe aan de sleutel van uw bedrijf.

Wanneer u het register leest vanuit een webtoepassing, is de huidige gebruiker afhankelijk van de verificatie en imitatie die in de webtoepassing is geïmplementeerd.

Het is veiliger om gegevens naar de gebruikersmap () te schrijven inCurrentUser plaats van naar de lokale computer (LocalMachine).

Wanneer u een registerwaarde maakt, moet u bepalen wat u moet doen als die waarde al bestaat. Een ander proces, misschien een kwaadaardig proces, kan de waarde al hebben gemaakt en toegang tot de waarde kunnen hebben. Wanneer u gegevens in de registerwaarde plaatst, zijn de gegevens beschikbaar voor het andere proces. Gebruik de GetValue methode om dit te voorkomen. Deze retourneert Nothing als de sleutel nog niet bestaat.

Het is niet veilig om geheimen, zoals wachtwoorden, in het register op te slaan als tekst zonder opmaak, zelfs als de registersleutel wordt beveiligd door ACL's (Toegangsbeheerlijsten).

De volgende voorwaarden kunnen een uitzondering veroorzaken:

.NET Framework-beveiliging

Als u dit proces wilt uitvoeren, vereist uw assembly een bevoegdheidsniveau dat door de RegistryPermission klasse wordt verleend. Als u in een gedeeltelijke vertrouwenscontext werkt, kan het proces een uitzondering genereren vanwege onvoldoende bevoegdheden. Op dezelfde manier moet de gebruiker over de juiste ACL's beschikken voor het maken of schrijven naar instellingen. Een lokale toepassing met de beveiligingsmachtiging voor codetoegang heeft bijvoorbeeld mogelijk geen machtiging voor het besturingssysteem. Zie Basisprincipes van codetoegangsbeveiligingvoor meer informatie.

Opmerking

Cas (Code Access Security) is afgeschaft in alle versies van .NET Framework en .NET. Recente versies van .NET respecteren geen CAS-aantekeningen en produceren fouten als CAS-gerelateerde API's worden gebruikt. Ontwikkelaars moeten alternatieve manieren zoeken om beveiligingstaken uit te voeren.

Zie ook