MachineKeySection.CompatibilityMode Proprietà

Definizione

Ottiene o imposta un valore che specifica se vengono usati i metodi di crittografia aggiornati per lo stato di visualizzazione introdotti dopo la release di .NET Framework 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

Valore della proprietà

Valore che indica se vengono usati i metodi di crittografia introdotti dopo la release 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 invertire 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 form ha un'impostazione diversa CompatibilityMode rispetto al server che ha creato il ticket, il ticket non verrà riconosciuto.

Per la CompatibilityMode proprietà è possibile specificare i 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 qualsiasi server ha una versione di .NET Framework precedente a 2.0 SP2. Questo è il valore predefinito a meno che il file dell'applicazione Web.config 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 ha .NET Framework 4.5.

  • Framework45. I miglioramenti crittografici per ASP.NET 4.5 sono effettivi. Si tratta del 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, le restrizioni seguenti sono effettive:

  • Se la proprietà DataProtectorType presenta un valore, anche la proprietà ApplicationName deve includerne uno. La DataProtector classe impone che venga fornito un nome 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 firmati. I ticket di autenticazione form saranno sempre crittografati e firmati, indipendentemente dal modo in cui l'attributo dell'elemento protectionforms è impostato nel file di 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 in Microsoft security bulletin 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 eseguire questa operazione, vedere Come configurare la modalità di crittografia legacy in ASP.NET.

Si applica a