Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

MachineKeySection-Klasse

Hinweis: Diese Klasse ist neu in .NET Framework, Version 2.0.

Definiert die Konfigurationseinstellungen, die die Schlüsselgenerierung und die Algorithmen steuern, die für die Verschlüsselung, Entschlüsselung, MAC (Media Access Control)-Operationen bei der Windows Forms-Authentifizierung, Ansichtszustandsvalidierung und die Isolierung von Sitzungszuständen zwischen Anwendungen verwendet werden. Diese Klasse kann nicht geerbt werden.

Namespace: System.Web.Configuration
Assembly: System.Web (in system.web.dll)

public sealed class MachineKeySection : ConfigurationSection
public final class MachineKeySection extends ConfigurationSection
public final class MachineKeySection extends ConfigurationSection

Die MachineKeySection-Klasse ermöglicht den programmgesteuerten Zugriff auf den Inhalt des MachineKey-Abschnitts der Konfigurationsdatei und dessen programmgesteuerte Änderung. Der MachineKey-Abschnitt kann auf Computerebene (Machine.config) oder Anwendungsebene (Web.config) konfiguriert werden und steuert die Schlüssel und Algorithmen, die für die Windows Forms-Authentifizierung, Ansichtszustandsvalidierung und Sitzungszustand-Anwendungsisolierung verwendet werden. Damit diese Features in einem Netzwerk von Webservern (einer Webfarm) ordnungsgemäß ausgeführt werden können, müssen die MachineKey-Attribute explizit und mit einem gültigen Schlüsselwert übereinstimmend konfiguriert werden. Der Wert "AutoGenerate" kann für Webfarms nicht verwendet werden, da er von einem zufälligen kryptografischen Schlüssel abhängt, der mit auf dem Computer lokalen Schutz beibehalten wird und nicht auf mehreren Computern kohärent vorhanden ist.

Hinweise für Implementierer Wenn in diesem Konfigurationsabschnitt Schlüssel angegeben werden müssen, wie dies in Webfarms-Szenarien häufig erforderlich ist, empfehlen wir, diesen Abschnitt mithilfe der geschützten Konfiguration zu verschlüsseln.

In diesem Beispiel wird veranschaulicht, wie Sie deklarativ für mehrere Attribute des machineKey-Element (ASP.NET-Einstellungsschema)-Abschnitts Werte angeben, auf die auch als Member der MachineKeySection-Klasse zugegriffen werden kann.

Im folgenden Beispiel für eine Konfigurationsdatei wird veranschaulicht, wie Sie deklarativ Werte für den machineKey-Element (ASP.NET-Einstellungsschema)-Abschnitt angeben.

<system.web>
  <machineKey validationKey="AutoGenerate,IsolateApps" 
    decryptionKey="AutoGenerate,IsolateApps" 
    validation="SHA1"/>
</system.web>

Im folgenden Codebeispiel wird die Verwendung der MachineKeySection-Klasse veranschaulicht.

#region Using directives

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Web;
using System.Web.Configuration;

#endregion

namespace Samples.Aspnet.SystemWebConfiguration
{
  class UsingMachineKeySection
  {
    static void Main(string[] args)
    {
      try
      {
        // Set the path of the config file.
        string configPath = "";

        // Get the Web application configuration object.
        Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);

        // Get the section related object.
        MachineKeySection configSection = 
          (MachineKeySection)config.GetSection("system.web/machineKey");

        // Display title and info.
        Console.WriteLine("ASP.NET Configuration Info");
        Console.WriteLine();

        // Display Config details.
        Console.WriteLine("File Path: {0}",
          config.FilePath);
        Console.WriteLine("Section Path: {0}",
          configSection.SectionInformation.Name);

        // Display ValidationKey property.
        Console.WriteLine("ValidationKey: {0}",
          configSection.ValidationKey);

        // Set ValidationKey property.
        configSection.ValidationKey = "AutoGenerate,IsolateApps";

        // Display DecryptionKey property.
        Console.WriteLine("DecryptionKey: {0}",
          configSection.DecryptionKey);

        // Set DecryptionKey property.
        configSection.DecryptionKey = "AutoGenerate,IsolateApps";

        // Display Validation property.
        Console.WriteLine("Validation: {0}",
          configSection.Validation);

        // Set Validation property.
        configSection.Validation = MachineKeyValidation.SHA1;

        // Update if not locked.
        if (!configSection.SectionInformation.IsLocked)
        {
          config.Save();
          Console.WriteLine("** Configuration updated.");
        }
        else
        {
          Console.WriteLine("** Could not update, section is locked.");
        }
      }

      catch (Exception e)
      {
        // Unknown error.
        Console.WriteLine(e.ToString());
      }

      // Display and wait
      Console.ReadLine();
    }
  }
}

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0
Anzeigen: