Sdílet prostřednictvím


MachineKeySection.CompatibilityMode Vlastnost

Definice

Získá nebo nastaví hodnotu, která určuje, zda se používají upgradované metody šifrování pro stav zobrazení, které byly zavedeny po vydání .NET Framework verze 2.0 Service Pack 1.

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

Hodnota vlastnosti

Hodnota, která označuje, zda jsou použity metody šifrování, které byly zavedeny po vydání rozhraní .NET Framework 2.0 SP1.

Atributy

Poznámky

Upgradované metody šifrování v novějších verzích rozhraní .NET Framework snižují riziko, že útočník může hodnotu úspěšně zpětně analyzovat DecryptionKey . Starší metody šifrování jsou k dispozici, aby se zachovala zpětná kompatibilita.

Všechny servery ve webové farmě by měly mít CompatibilityMode vlastnost nastavenou na stejnou hodnotu. Pokud má server, který čte lístek ověřování pomocí formulářů, jiné CompatibilityMode nastavení než server, který lístek vytvořil, lístek se nerozpozná.

Pro vlastnost lze zadat CompatibilityMode následující hodnoty:

  • Framework20SP1. Tato hodnota určuje, že ASP.NET používá metody šifrování, které byly k dispozici ve verzích ASP.NET starších než 2.0 SP2. Tuto hodnotu použijte pro všechny servery ve webové farmě, pokud má některý server verzi rozhraní .NET Framework starší než 2.0 SP2. Toto je výchozí hodnota, pokud aplikace Web.config soubor nemá targetFramework atribut httpRuntime prvku nastaven na "4.5".

  • Framework20SP2. Tato hodnota určuje, že ASP.NET používá upgradované metody šifrování, které byly zavedeny v rozhraní .NET Framework 2.0 SP2. Tuto hodnotu použijte pro všechny servery ve webové farmě, pokud všechny servery mají rozhraní .NET Framework 2.0 SP2 nebo novější, ale alespoň jeden nemá rozhraní .NET Framework 4.5.

  • Framework45. Kryptografické vylepšení pro ASP.NET 4.5 se projeví. Toto je výchozí hodnota, pokud aplikace Web.config soubor má targetFramework atribut httpRuntime prvku nastaven na "4.5".

Pokud je tato vlastnost nastavena na Framework45, platí následující omezení:

  • Pokud vlastnost DataProtectorType má hodnotu, ApplicationName vlastnost musí mít také hodnotu. Třída DataProtector vyžaduje zadání neprázdného názvu aplikace.

  • Atribut Validation musí být skutečný ověřovací algoritmus (například MD5, SHA1, HMACSHA256, HMACSHA384, HMACSHA512) nebo vlastní algoritmus, který typ podtřídí KeyedHashAlgorithm . Hodnoty AES a 3DES jsou zakázané.

  • Architektura nevygeneruje datové části, které jsou jen podepsané. Lístky ověřování formulářů budou vždy šifrované i podepsané bez ohledu na to, jak protection je atribut forms prvku nastaven v souboru Web.config. Stav zobrazení bude vždy zašifrovaný i podepsaný, pokud EnableViewStateMac je pro danou stránku nastavená nebo RequireViewStateEncryption nastavená.

V důsledku aktualizace zabezpečení popsané v bulletinu zabezpečení společnosti Microsoft MS10-070 je výchozí chování šifrování stejné pro Framework20SP1 nastavení a Framework20SP2 nastavení. Změna výchozího chování se nedoporučuje, ale pokud to chcete udělat, přečtěte si článek Postup konfigurace staršího režimu šifrování v ASP.NET.

Platí pro