Condividi tramite


MachineKeySection.CompatibilityMode Proprietà

Definizione

Ottiene o imposta un valore che specifica se vengono utilizzati i metodi di crittografia aggiornati per lo stato di visualizzazione introdotti dopo la versione 2.0 di Service Pack 1 di .NET Framework.

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

Valore della proprietà

Valore che indica se vengono usati i metodi di crittografia introdotti dopo la versione di .NET Framework 2.0 SP1.

Attributi

Commenti

I metodi di crittografia aggiornati nelle versioni successive di .NET Framework riducono il rischio che un utente malintenzionato possa decomporre correttamente il DecryptionKey valore. I metodi di crittografia meno recenti sono disponibili per mantenere la compatibilità con le versioni precedenti.

Tutti i server in una Web farm devono avere la CompatibilityMode proprietà impostata sullo stesso valore. Se il server che legge un ticket di autenticazione basata su form ha un'impostazione diversa CompatibilityMode rispetto al server che ha creato il ticket, il ticket non verrà riconosciuto.

Per la proprietà è possibile specificare i CompatibilityMode valori seguenti:

  • Framework20SP1. Questo valore specifica che ASP.NET usa metodi di crittografia disponibili nelle versioni di ASP.NET precedenti a 2.0 SP2. Usare questo valore per tutti i server in una Web farm se un server dispone di una versione di .NET Framework precedente alla versione 2.0 SP2. Questo è il valore predefinito a meno che l'applicazione Web.config file abbia l'attributo targetFramework dell'elemento httpRuntime impostato su "4.5".

  • Framework20SP2. Questo valore specifica che ASP.NET usa metodi di crittografia aggiornati introdotti in .NET Framework 2.0 SP2. Usare questo valore per tutti i server in una Web farm se tutti i server hanno .NET Framework 2.0 SP2 o versione successiva, ma almeno uno non dispone di .NET Framework 4.5.

  • Framework45. I miglioramenti crittografici per ASP.NET 4.5 sono effettivi. Questo è il valore predefinito se l'applicazione Web.config file ha l'attributo targetFramework dell'elemento httpRuntime impostato su "4.5".

Quando questa proprietà è impostata su Framework45, vengono applicate le restrizioni seguenti:

  • Se la DataProtectorType proprietà ha un valore, la ApplicationName proprietà deve avere anche un valore. La DataProtector classe impone che venga specificato un nome di applicazione non vuoto.

  • L'attributo Validation deve essere un algoritmo di convalida effettivo (ad esempio MD5, SHA1, HMACSHA256, HMACSHA384, HMACSHA512) o un algoritmo personalizzato che sottoclassi il KeyedHashAlgorithm tipo. I valori AES e 3DES non sono consentiti.

  • Il framework non produrrà payload di sola firma. I ticket di autenticazione basata su form saranno sempre crittografati e firmati, indipendentemente dalla modalità di impostazione dell'attributo protection dell'elemento forms nel file Web.config. Lo stato di visualizzazione sarà sempre crittografato e firmato se EnableViewStateMac o RequireViewStateEncryption è impostato per una determinata pagina.

Come risultato dell'aggiornamento della sicurezza descritto nel bollettino microsoft sulla sicurezza MS10-070, il comportamento di crittografia predefinito è lo stesso per le Framework20SP1 impostazioni e Framework20SP2 . La modifica del comportamento predefinito non è consigliata, ma se si vuole farlo, vedere Come configurare la modalità di crittografia legacy in ASP.NET.

Si applica a