Wie Sie Schlüssel erstellen mit Visual Basic .NET für die Verwendung in Formularauthentifizierung

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 313091 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt die Schlüssel für Verschlüsselung, Entschlüsselung und Überprüfung der Authentifizierung Cookie Formulardaten erstellen. Können Sie die Tasten, die Sie in diesem Artikel ValidationKey und die DecryptionKey Attribute des im Abschnitt "<machinekey>" Erstellen der<system.web>-Element in Machine.config und Web.config-Dateien.

Voraussetzungen

Die folgende Liste führt die empfohlene Hardware, Software, Netzwerkinfrastruktur und Servicepacks, die Sie benötigen:
  • Microsoft Windows 2000 oder Microsoft Windows XP
  • Microsoft .NET framework
  • Microsoft Internetinformationsdienste (IIS)

Erstellen des Projekts

  1. Starten Sie Microsoft Visual Studio .NET.
  2. Zeigen im Menü Datei auf neu , und klicken Sie dann auf Projekt .
  3. Klicken Sie im Bereich Projekttypen auf Visual Basic-Projekte .
  4. Klicken Sie im Bereich Vorlagen auf Konsolenanwendung .
  5. Geben Sie in das Textfeld Name HashConfigVb und klicken Sie dann auf OK .

Schreiben Sie den Code, ein Kennwort hash

Der Code in diesem Abschnitt liest zwei Argumente, die über die Befehlszeile übergeben werden:
  • Das erste Argument ist die Anzahl der Bytes, mit der das DecryptionKey -Attribut erstellt.
  • Das zweite Argument ist die Anzahl der Bytes, die zum Erstellen ValidationKey -Attribut verwendet wird.
Der Code verwendet ein Zufallszahlengenerators eine zufällige Anzahl von Bytes, die basierend auf die Befehlszeilenargumente erstellt. Nachdem die zufällige Bytes erstellt wurden, werden die Bytes in eine hexadezimale Zeichenfolge formatiert, die für die Verwendung in der config-Dateien geeignet ist.

Hinweis: Die hexadezimale Zeichenfolge, die erstellt wird, ist zweimal die Größe des Werts, der in der Befehlszeile übergeben wird. Beispielsweise ist 24 Byte für einen Schlüssel angeben, die resultierende Zeichenfolge 48 Byte nach der Konvertierung. Die gültigen Werte für DecryptionKey ist 8 oder 24. Dies erstellt einen 16-Byte-Schlüssel für die Datenverschlüsselung DES (Standard) oder eine 48 Byte Schlüssel für Triple-DES bzw.. Gültige Werte für ValidationKey sind 20 bis 64. Dies erstellt Schlüssel von 40 bis 128 Byte Länge nach der Konvertierung. Die Ausgabe aus dem Code ist eine ganze <machinekey>-Element, das Sie kopieren und in einer Machine.config oder einer Datei Web.config einfügen können.

  1. Fügen Sie eine neue Klassendatei mit dem Namen KeyCreator auf das Visual Basic-Projekt.
  2. Replace the existing code in the KeyCreator.vb file with the following code:
    Imports System
    Imports System.Text
    Imports System.Security.Cryptography
    
    Namespace Crypto
      Public Class KeyCreator
    	
        Public Shared Sub CreateMachineKey()
          Dim commandLineArgs As String()
          commandLineArgs = System.Environment.GetCommandLineArgs()
    
          Dim decryptionKey As String
          decryptionKey = CreateKey(System.Convert.ToInt32(commandLineArgs(1)))
          Dim validationKey As String
          validationKey = CreateKey(System.Convert.ToInt32(commandLineArgs(2)))
    
          Console.WriteLine("<machineKey validationKey=""{0}"" decryptionKey=""{1}"" validation=""SHA1""/>", _
          validationKey, decryptionKey)
         End Sub
    
         Public Shared Function CreateKey(numBytes As Integer) As String
           Dim rng As RNGCryptoServiceProvider = New RNGCryptoServiceProvider()
           Dim buff(numBytes -1) As Byte
    
           rng.GetBytes(buff)
    				
           Return BytesToHexString(buff)
         End Function
     
         Public Shared Function BytesToHexString(bytes As Byte()) As String
           Dim hexString As StringBuilder = New StringBuilder(64)
           Dim counter as Integer
    
           For counter = 0 To bytes.Length - 1
             hexString.Append(String.Format("{0:X2}", bytes(counter)))
           Next
    
           Return hexString.ToString()
        End Function
    
      End Class
    End Namespace
    					
  3. Öffnen Sie die Module1.vb-Datei, die vom Standardwert erstellt wird, und fügen Sie folgenden Code in die Sub Main -Routine:
        Dim MyKeyCreator As New Crypto.KeyCreator()
        MyKeyCreator.CreateMachineKey()
    					
  4. Erstellen Sie die Anwendung.

Die Hashwerte erzeugen

Führen Sie die Anwendung von einer Eingabeaufforderung aus, und übergeben Sie in zwei Ganzzahlwerte, die die Größe der die Entschlüsselung und Überprüfung Schlüssel sind. Wenn die Konsolenanwendung HashConfigVb.exe benannt wird, geben Sie die folgende Syntax an der Eingabeaufforderung in den Papierkorb Verzeichnis der Anwendung:
HashConfigVb.exe 24 64
Die Anwendung sollte Ausgabe zurückgegeben werden, die die folgende Ausgabe ähnelt:
<machineKey validationKey="08CE6B478DCE73..........E566D8AC5D1C045BA60"
            decryptionKey="4252D6B2268.........67F451CE65D0F2ABE9BCD3A"
            validation="SHA1"/>
					
Hinweis: Da der Code ein Zufallszahlengenerators verwendet, unterscheidet die Ausgabe jedes Mal.

Aktualisieren Sie die Konfigurationsdatei

  1. Suchen der Datei Machine.config oder Web.config-Datei.
  2. Suchen Sie in der Konfigurationsdatei des Abschnitts <system.web>.
  3. Ersetzen Sie im Abschnitt <machinekey> durch die Ausgabe der Konsolenanwendung. Wenn der <machinekey>-Abschnitt nicht vorhanden ist, erstellen Sie es.
  4. Speichern Sie die Konfigurationsdatei.
  5. Starten Sie IIS neu auf allen Servern in der Webfarm, damit die Machine.config Änderungen wirksam werden.

Problembehandlung

Stellen Sie sicher, dass der <machinekey>-Abschnitt identisch, explizite Schlüssel verfügt (d. h., verwenden Sie nicht dieOption AutoGenerate für Attribute in Abschnitt <machinekey>) in der Webfarm in den folgenden Szenarien:
  • Wenn Sie die Formularauthentifizierung verwenden.
  • Wenn Sie Sitzungsstatus in StateServer-Modus ausführen.
  • Wenn Sie möchten ViewState in einer Webfarm verfügbar sein, da standardmäßig das Attribut EnableViewStateMAC auf true festgelegt ist.

Informationsquellen

Weitere Informationen finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
308157Wie Sie die formularbasierte Authentifizierung in Ihrer ASP.NET-Anwendung implementieren, mithilfe von Visual Basic .NET
306238Wie Sie rollenbasierte Sicherheit bei der formularbasierten Authentifizierung in Ihrer ASP.NET-Anwendung implementieren, mithilfe von Visual Basic .NET
306590INFO: Überblick über die ASP.NET-Sicherheit
307626INFO: ASP.NET-Konfiguration (Übersicht)

Eigenschaften

Artikel-ID: 313091 - Geändert am: Montag, 29. Oktober 2007 - Version: 3.10
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
Keywords: 
kbmt kbproductlink kbconfig kbhowtomaster kbsecurity kbstate KB313091 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 313091
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com