DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 312906 - Geändert am: Dienstag, 30. Oktober 2012 - Version: 5.0

 

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt das Erstellen von Schlüsseln mit Verschlüsselung, Entschlüsselung und Überprüfung von Cookiedaten zur Formularauthentifizierung. Sie können die Schlüssel, die Sie erstellen, die in diesem Artikel für die ValidationKey "und" DecryptionKey Attribute des Abschnitts <machineKey>in der <system.web></system.web> Element in der Datei Machine.config.

</machineKey>

Anforderungen

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)

Das Projekt erstellen

Erstellen Sie eine Konsolenanwendung Visual C# .NET:
  1. Starten Sie Visual Studio .NET
  2. Im Menü Datei auf neu, und klicken Sie dann auf Projekt.
  3. Klicken Sie unter Projekttypenauf Visual C# Projekte.
  4. Klicken Sie unter Vorlagenauf Konsolenanwendung.
  5. Nennen Sie das ProjektHashConfigCs.
  6. Klicken Sie auf OK.

Schreiben Sie Code zum Generieren der Schlüssel

Der folgende code liest zwei Argumente, die von der Befehlszeile:
  • Das erste Argument ist die Anzahl der Bytes, die Erstellen Sie das Attribut DecryptionKey .
  • Das zweite Argument ist die Anzahl der Bytes, die Erstellen Sie das ValidationKey -Attribut.
Der Code verwendet einen Zufallszahlen-Generator, um einen zufälligen erstellen Anzahl der Bytes, die basierend auf die Befehlszeilenargumente. Nachdem die zufällige Bytes sind erstellt, werden die Bytes in eine hexadezimale Zeichenfolge formatiert, die geeignet ist Verwenden Sie in der config-Dateien.

Hinweis Die hexadezimale Zeichenfolge, die erstellt wird doppelt so groß ist die Wert, der in der Befehlszeile übergeben wird. Beispielsweise, wenn Sie angeben, 24 bytes Bei einem Schlüssel ist die resultierende Zeichenfolge 48 Byte lang nach der Konvertierung. Die Gültige Werte für DecryptionKey ist 8 oder 24. Dadurch kann einen 16-Byte-Schlüssel zur Datenverschlüsselung Standard (DES) oder 48 Byte Schlüssel Triple-DES bzw.. Gültige Werte für ValidationKey sind 20 bis 64. Dies erstellt Schlüssel von 40 bis 128 Byte Länge. Die Ausgabe aus dem Code ist eine ganze <machineKey></machineKey> -Element, das Sie kopieren und in einer Datei Machine.config einfügen können.

Hinzufügen einer CS-Datei den folgenden Code hinzu:
using System;
using System.Text;
using System.Security.Cryptography;

namespace Crypto
{
    public class KeyCreator
    {
        public static void Main(String[] args)
        {			
            String[] commandLineArgs = System.Environment.GetCommandLineArgs();
            string decryptionKey = CreateKey(System.Convert.ToInt32(commandLineArgs[1]));
            string validationKey = CreateKey(System.Convert.ToInt32(commandLineArgs[2]));

            Console.WriteLine("<machineKey validationKey=\"{0}\" decryptionKey=\"{1}\" validation=\"SHA1\"/>", validationKey, decryptionKey);
        }	

        static String CreateKey(int numBytes) 
        {
            RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
            byte[] buff = new byte[numBytes];

            rng.GetBytes(buff);
            return BytesToHexString(buff);
        }

        static String BytesToHexString(byte[] bytes) 
        {
            StringBuilder hexString = new StringBuilder(64);

            for (int counter = 0; counter < bytes.Length; counter++) 
            {
                hexString.Append(String.Format("{0:X2}", bytes[counter]));
            }
            return hexString.ToString();
        }
    }
}
				

Die Hashwerte generieren

Jetzt können Sie die Anwendung kompilieren.

Führen Sie die Anwendung von einer Eingabeaufforderung durch die Übergabe zwei Ganzzahlwerte, die die Größe der die Entschlüsselung und Überprüfung Schlüssel. Wenn Sie die Konsole mit dem Namen z. B. Anwendung HashConfigCs.exe, geben Sie die folgende Syntax in der Befehlszeile im Verzeichnis Bin\debug des die Anwendung:
hashconfigcs.exe 24 64
Rechnen Sie die Anwendung Ausgabe zurückgibt, ähnlich ist, die folgende Ausgabe:
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
            decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77"
            validation="SHA1"/>
					
Hinweis Da der Code einen Zufallszahlengenerator der Ausgabe verwendet wird ist jedes Mal anders.


Aktualisieren Sie die Konfigurationsdatei

  1. Suchen Sie nach die Datei Machine.config.
  2. Suchen Sie die <system.web></system.web> Abschnitt in der Konfigurationsdatei.
  3. Ersetzen Sie im Abschnitt <machineKey>durch die Ausgabe von die Konsolenanwendung. Wenn der <machineKey>-Abschnitt nicht vorhanden ist, Erstellen Sie ihn.</machineKey> </machineKey>
  4. Speichern der Konfigurationsdatei.
  5. Starten Sie IIS auf allen Servern in der Webfarm für die Datei Machine.config Änderungen wirksam werden.

Problembehandlung

Stellen Sie sicher, dass der <machineKey>-Abschnitt weist identisch, explizite Schlüssel (das heißt, verwenden Sie nicht die Option AutoGenerate für Attribute in Abschnitt <machineKey>) über der Webfarm in den folgenden Szenarien: </machineKey> </machineKey>
  • Wenn Sie die Formularauthentifizierung verwenden.
  • Wenn Sie Sitzungsstatus im StateServer-Modus ausführen.
  • ViewState in einer Webfarm verfügbar sein soll Da das Attribut EnableViewStateMAC standardmäßig auf True festgelegt ist.

Weitere Informationen

Abschnitt MachineKey sollten in der Webfarm in den folgenden übereinstimmen Fälle:
  • Wenn die Formularauthentifizierung verwenden.
  • Wenn Sie Sitzungsstatus im StateServer-Modus ausführen.
  • Viewstate in einer Webfarm verfügbar sein soll Da EnableViewStateMac standardmäßig aktiviert ist.

Informationsquellen

Weitere Informationen klicken Sie auf die folgenden Artikelnummern klicken, um die Artikel der Microsoft Knowledge Base:
301240  (http://support.microsoft.com/kb/301240/ ) Formularbasierte Authentifizierung in der ASP.NET-Anwendung implementieren, mit C#.
311495  (http://support.microsoft.com/kb/311495/ ) Zum Implementieren von rollenbasierter Sicherheit mit formularbasierte Authentifizierung in Ihrer Anwendung ASP.NET mit Visual C#.
306590  (http://support.microsoft.com/kb/306590/ ) INFO: ASP.NET-Sicherheit (Übersicht)
307626  (http://support.microsoft.com/kb/307626/ ) INFO: ASP.NET (Übersicht)

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
Keywords: 
kbconfig kbhowtomaster kbsecurity kbstate kbmt KB312906 KbMtde
Maschinell übersetzter ArtikelMaschinell ü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: 312906  (http://support.microsoft.com/kb/312906/en-us/ )
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.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store