Freigeben über


MachineKeySection.CompatibilityMode Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob aktualisierte Verschlüsselungsmethoden für den Ansichtszustand verwendet werden, die nach .NET Framework 2.0 Service Pack 1 eingeführt wurden, oder legt diesen Wert fest.

public:
 property System::Web::Configuration::MachineKeyCompatibilityMode CompatibilityMode { System::Web::Configuration::MachineKeyCompatibilityMode get(); void set(System::Web::Configuration::MachineKeyCompatibilityMode value); };
[System.Configuration.ConfigurationProperty("compatibilityMode", DefaultValue=System.Web.Configuration.MachineKeyCompatibilityMode.Framework20SP1)]
public System.Web.Configuration.MachineKeyCompatibilityMode CompatibilityMode { get; set; }
[<System.Configuration.ConfigurationProperty("compatibilityMode", DefaultValue=System.Web.Configuration.MachineKeyCompatibilityMode.Framework20SP1)>]
member this.CompatibilityMode : System.Web.Configuration.MachineKeyCompatibilityMode with get, set
Public Property CompatibilityMode As MachineKeyCompatibilityMode

Eigenschaftswert

Ein Wert, der angibt, ob Verschlüsselungsmethoden, die nach dem .NET Framework 2.0 SP1-Release eingeführt wurden, verwendet werden.

Attribute

Hinweise

Die aktualisierten Verschlüsselungsmethoden in höheren Versionen von .NET Framework verringern das Risiko, dass ein Angreifer den Wert erfolgreich zurückentwickeln DecryptionKey kann. Die älteren Verschlüsselungsmethoden sind verfügbar, um die Abwärtskompatibilität zu gewährleisten.

Auf allen Servern in einer Webfarm sollte die CompatibilityMode Eigenschaft auf denselben Wert festgelegt sein. Wenn der Server, der ein Formularauthentifizierungsticket liest, eine andere CompatibilityMode Einstellung aufweist als der Server, der das Ticket erstellt hat, wird das Ticket nicht erkannt.

Die folgenden Werte können für die CompatibilityMode -Eigenschaft angegeben werden:

  • Framework20SP1. Dieser Wert gibt an, dass ASP.NET Verschlüsselungsmethoden verwendet, die in Versionen von ASP.NET vor 2.0 SP2 verfügbar waren. Verwenden Sie diesen Wert für alle Server in einer Webfarm, wenn ein Server eine Version von .NET Framework vor 2.0 SP2 aufweist. Dies ist der Standardwert, es sei denn, die Anwendung Web.config Datei hat das targetFramework Attribut des httpRuntime Elements auf "4.5" festgelegt.

  • Framework20SP2. Dieser Wert gibt an, dass ASP.NET aktualisierte Verschlüsselungsmethoden verwendet, die in .NET Framework 2.0 SP2 eingeführt wurden. Verwenden Sie diesen Wert für alle Server in einer Webfarm, wenn alle Server über .NET Framework 2.0 SP2 oder höher verfügen, aber mindestens einer nicht über .NET Framework 4.5 verfügt.

  • Framework45. Kryptografische Verbesserungen für ASP.NET 4.5 sind in Kraft. Dies ist der Standardwert, wenn die Anwendung Web.config Datei das targetFramework Attribut des httpRuntime Elements auf "4.5" festgelegt hat.

Wenn diese Eigenschaft auf Framework45festgelegt ist, gelten die folgenden Einschränkungen:

  • Wenn die DataProtectorType-Eigenschaft über einen Wert verfügt, muss die ApplicationName-Eigenschaft auch einen Wert haben. Die DataProtector -Klasse schreibt vor, dass ein nicht leerer Anwendungsname angegeben wird.

  • Das Validation Attribut muss ein tatsächlicher Validierungsalgorithmus (z. B. MD5, SHA1, HMACSHA256, HMACSHA384, HMACSHA512) oder ein benutzerdefinierter Algorithmus sein, der den KeyedHashAlgorithm Typ unterklassiert. Die Werte AES und 3DES sind verboten.

  • Das Framework erzeugt keine nur signierten Nutzlasten. Tickets für die Formularauthentifizierung werden immer verschlüsselt und signiert, unabhängig davon, wie das protection Attribut des forms Elements in der Web.config-Datei festgelegt wird. Der Ansichtsstatus wird immer verschlüsselt und signiert, wenn entweder EnableViewStateMac oder RequireViewStateEncryption für eine bestimmte Seite festgelegt ist.

Aufgrund des Sicherheitsupdates, das im Microsoft Security Bulletin MS10-070 beschrieben wird, ist das Standardverschlüsselungsverhalten für die Framework20SP1 Einstellungen und Framework20SP2 identisch. Es wird nicht empfohlen, das Standardverhalten zu ändern, aber wenn Sie dies tun möchten, finden Sie weitere Informationen unter Konfigurieren des Legacyverschlüsselungsmodus in ASP.NET.

Gilt für: