Språk

MachineKeySection.CompatibilityMode Egenskap

Definition

Hämtar eller anger ett värde som anger om uppgraderade krypteringsmetoder för visningstillstånd som introducerades efter .NET Framework version 2.0 Service Pack 1 används.

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

Egenskapsvärde

Ett värde som anger om krypteringsmetoder som introducerades efter .NET Framework 2.0 SP1-versionen används.

Attribut

Kommentarer

De uppgraderade krypteringsmetoderna i senare versioner av .NET Framework minskar risken för att en angripare kan omvänt konstruera värdet DecryptionKey. De äldre krypteringsmetoderna är tillgängliga för att upprätthålla bakåtkompatibilitet.

Alla servrar i en webbgrupp bör ha egenskapen CompatibilityMode inställd på samma värde. Om servern som läser ett formulärautentiseringsärende har en annan CompatibilityMode inställning än den server som skapade biljetten identifieras inte biljetten.

Följande värden kan anges för egenskapen CompatibilityMode :

  • Framework20SP1. Det här värdet anger att ASP.NET använder krypteringsmetoder som var tillgängliga i versioner av ASP.NET tidigare än 2.0 SP2. Använd det här värdet för alla servrar i en webbgrupp om någon server har en version av .NET Framework tidigare än 2.0 SP2. Detta är standardvärdet om inte programmet Web.config filen har targetFramework attributet för elementet httpRuntime inställt på "4.5".

  • Framework20SP2. Det här värdet anger att ASP.NET använder uppgraderade krypteringsmetoder som introducerades i .NET Framework 2.0 SP2. Använd det här värdet för alla servrar i en webbgrupp om alla servrar har .NET Framework 2.0 SP2 eller senare, men minst en inte har .NET Framework 4.5.

  • Framework45. Kryptografiska förbättringar för ASP.NET 4.5 gäller. Det här är standardvärdet om programmet Web.config filen har targetFramework attributet för elementet httpRuntime inställt på "4.5".

När den här egenskapen är inställd Framework45på gäller följande begränsningar:

  • Om egenskapen DataProtectorType har ett värde ApplicationName måste egenskapen också ha ett värde. Klassen DataProtector kräver att ett programnamn som inte är tomt anges.

  • Attributet Validation måste vara en faktisk valideringsalgoritm (till exempel MD5, SHA1, HMACSHA256, HMACSHA384, HMACSHA512) eller en anpassad algoritm som underklassar KeyedHashAlgorithm typen. Värdena AES och 3DES är förbjudna.

  • Ramverket skapar inte signerade nyttolaster. Formulärautentiseringsbiljetter kommer alltid att vara både krypterade och signerade, oavsett hur elementets protectionforms attribut anges i Web.config-filen. Visningstillståndet kommer alltid att vara både krypterat och signerat om någon av EnableViewStateMac dem eller RequireViewStateEncryption har angetts för en viss sida.

Som ett resultat av säkerhetsuppdateringen som beskrivs i Microsoft säkerhetsbulletinen MS10-070 är standardkrypteringsbeteendet detsamma för inställningarna Framework20SP1 och Framework20SP2. Att ändra standardbeteendet rekommenderas inte, men om du vill göra det kan du läsa Så här konfigurerar du äldre krypteringsläge i ASP.NET.

Gäller för