Sdílet prostřednictvím


MachineKeySection.CompatibilityMode Vlastnost

Definice

Získá nebo nastaví hodnotu, která určuje, zda upgradované šifrovací metody pro zobrazení stavu, které byly zavedeny po rozhraní .NET Framework verze 2.0 Service Pack 1 verze jsou použity.

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 se používají 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 úspěšně provést zpětnou analýzu DecryptionKey hodnoty. Pro zajištění zpětné kompatibility jsou k dispozici starší metody šifrování.

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 některý server má verzi rozhraní .NET Framework starší než 2.0 SP2. Toto je výchozí hodnota, pokud soubor aplikace Web.config nemá targetFramework atribut elementu httpRuntime 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. Platí kryptografická vylepšení pro ASP.NET 4.5. Toto je výchozí hodnota, pokud má soubor targetFramework aplikace Web.config atribut elementu httpRuntime nastavený na "4.5".

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

  • DataProtectorType Pokud má vlastnost hodnotu, ApplicationName musí mít vlastnost také hodnotu. Třída DataProtector vyžaduje, aby byl zadaný neprázdný název aplikace.

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

  • Architektura nevytváří datové části jen s podpisem. Lístky ověřování formulářů budou vždy zašifrované i podepsané bez ohledu na to, jak protection je atribut elementu forms nastavený v souboru Web.config. Stav zobrazení bude vždy zašifrovaný a podepsaný, pokud je pro danou stránku nastaveno nebo EnableViewStateMacRequireViewStateEncryption .

Výsledkem 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 . Změna výchozího chování se nedoporučuje, ale pokud to chcete udělat, přečtěte si téma Konfigurace starší verze režimu šifrování v ASP.NET.

Platí pro