MachineKeySection.CompatibilityMode Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld waarmee wordt aangegeven of bijgewerkte versleutelingsmethoden voor weergavestatus die zijn geïntroduceerd na de release van .NET Framework versie 2.0 Service Pack 1 worden gebruikt.

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

Waarde van eigenschap

Een waarde die aangeeft of versleutelingsmethoden die zijn geïntroduceerd na de release van .NET Framework 2.0 SP1, worden gebruikt.

Kenmerken

Opmerkingen

De bijgewerkte versleutelingsmethoden in latere versies van het .NET Framework verminderen het risico dat een aanvaller de DecryptionKey-waarde kan reverse-engineeren. De oudere versleutelingsmethoden zijn beschikbaar om compatibiliteit met eerdere versies te behouden.

Voor alle servers in een webfarm moet de CompatibilityMode eigenschap zijn ingesteld op dezelfde waarde. Als de server die een formulierverificatieticket leest een andere CompatibilityMode instelling heeft dan de server die het ticket heeft gemaakt, wordt het ticket niet herkend.

De volgende waarden kunnen worden opgegeven voor de CompatibilityMode eigenschap:

  • Framework20SP1. Deze waarde geeft aan dat ASP.NET versleutelingsmethoden gebruikt die beschikbaar waren in versies van ASP.NET ouder dan 2.0 SP2. Gebruik deze waarde voor alle servers in een webfarm als een server een versie van het .NET Framework heeft die ouder is dan 2.0 SP2. Dit is de standaardwaarde, tenzij het Web.config-bestand van de toepassing het targetFramework kenmerk van het httpRuntime element heeft ingesteld op '4.5'.

  • Framework20SP2. Deze waarde geeft aan dat ASP.NET gebruikmaakt van bijgewerkte versleutelingsmethoden die zijn geïntroduceerd in het .NET Framework 2.0 SP2. Gebruik deze waarde voor alle servers in een webfarm als alle servers .NET Framework 2.0 SP2 of hoger hebben, maar ten minste één niet beschikt over het .NET Framework 4.5.

  • Framework45. Cryptografische verbeteringen voor ASP.NET 4.5 zijn van kracht. Dit is de standaardwaarde als het Web.config-bestand van de toepassing het targetFramework kenmerk van het httpRuntime element heeft ingesteld op '4.5'.

Wanneer deze eigenschap is ingesteld op Framework45, zijn de volgende beperkingen van kracht:

  • Als de DataProtectorType eigenschap een waarde heeft, moet de ApplicationName eigenschap ook een waarde hebben. De DataProtector klasse vereist dat er een niet-lege toepassingsnaam wordt opgegeven.

  • Het Validation kenmerk moet een echt validatiealgoritme zijn (bijvoorbeeld MD5, SHA1, HMACSHA256, HMACSHA384, HMACSHA512) of een aangepast algoritme dat het KeyedHashAlgorithm type subklassen. De waarden AES en 3DES zijn verboden.

  • Het framework produceert geen alleen-ondertekende nettoladingen. Formulierverificatietickets worden altijd versleuteld en ondertekend, ongeacht hoe het protection kenmerk van het forms element is ingesteld in het Web.config-bestand. De weergavestatus wordt altijd versleuteld en ondertekend als een EnableViewStateMac van RequireViewStateEncryption beide of is ingesteld voor een bepaalde pagina.

Als gevolg van de beveiligingsupdate die wordt beschreven in Microsoft beveiligingsbulletin MS10-070, is het standaardversleutelingsgedrag hetzelfde voor de instellingen voor Framework20SP1 en Framework20SP2. Het wijzigen van het standaardgedrag wordt niet aanbevolen, maar als u dit wilt doen, raadpleegt u De verouderde versleutelingsmodus configureren in ASP.NET.

Van toepassing op