Elemento machineKey (schema delle impostazioni ASP.NET)

Aggiornamento: novembre 2007

Configura le chiavi da utilizzare per la crittografia e la decrittografia dei dati dei cookie di autenticazione basata su form e dei dati dello stato di visualizzazione e per la verifica dell'identificazione dello stato delle sessioni out-of-process.

Elemento configuration (schema delle impostazioni generali)
  Elemento system.web (schema delle impostazioni ASP.NET)
    Elemento machineKey (schema delle impostazioni ASP.NET)

<machineKey 
  validationKey="AutoGenerate,IsolateApps" [String]
  decryptionKey="AutoGenerate,IsolateApps" [String]
  validation="SHA1" [SHA1 | MD5 | 3DES | AES]
  decryption="Auto" [Auto | DES | 3DES | AES]
/>

Attributi ed elementi

Le seguenti sezioni illustrano attributi, elementi figlio e padre.

Attributi

Attributo

Descrizione

decryption

Attributo String facoltativo.

Specifica il tipo di algoritmo di hash utilizzato per decrittografare i dati.

Questo attributo può avere uno dei seguenti valori.

Valore

Descrizione

Auto

Specifica che l'algoritmo di decrittografia da utilizzare viene determinato da ASP.NET in base alle impostazioni di configurazione. Rappresenta il valore di decrittografia machineKey predefinito.

AES

Specifica che in ASP.NET viene utilizzato l'algoritmo AES (Rijndael) per decrittografare i dati. AES è l'algoritmo predefinito per questo tipo di operazione.

3DES

Specifica che in ASP.NET viene utilizzato l'algoritmo TripleDES per decrittografare i dati. L'algoritmo TripleDES (3DES) utilizza tre iterazioni successive dell'algoritmo DES.

DES

Specifica che in ASP.NET viene utilizzato l'algoritmo DES (Data Encryption Standard) per decrittografare i dati.

Nota

Questo attributo è nuovo in .NET Framework versione 2.0.

decryptionKey

Attributo String obbligatorio.

Specifica la chiave utilizzata per crittografare e decrittografare i dati o il processo dal quale viene generata la chiave. L'attributo viene utilizzato per la crittografia e la decrittografia dell'autenticazione basata su form e per la crittografia dello stato di visualizzazione quando validation è impostato sul campo TripleDES.

Il modificatore IsolateApps del valore decryptionKey indica che ASP.NET genera una chiave crittografata univoca per ogni applicazione utilizzando l'ID dell'applicazione. IsolateApps è incluso come parte del valore predefinito.

Se è necessario supportare la configurazione in una rete di server Web (Web farm), impostare manualmente l'attributo per assicurare la coerenza della configurazione.

Questo attributo può avere uno dei seguenti valori. Il valore predefinito è AutoGenerate,IsolateApps.

Valore

Descrizione

AutoGenerate, IsolateApps

Il modificatore AutoGenerate specifica che in ASP.NET viene generata una chiave casuale, quindi memorizzata nell'Autorità di sicurezza locale. Il modificatore IsolateApps specifica che in ASP.NET viene generata una chiave crittografata univoca per ogni applicazione utilizzando l'ID dell'applicazione. Rappresenta il valore predefinito.

value

Specifica una chiave assegnata manualmente. Questo valore deve essere impostato manualmente su una stringa di caratteri esadecimali per garantire una configurazione coerente in una Web farm. La chiave deve essere lunga 16 caratteri esadecimali quando si utilizza la crittografia DES e 48 caratteri esadecimali quando si utilizza la crittografia Triple DES (3 DES) o AES. Se si utilizzano chiavi più brevi della lunghezza massima, è necessario crearle in modo casuale, ad esempio utilizzando la classe RNGCryptoServiceProvider. Con ASP.NET è possibile utilizzare Triple DES solo su computer che dispongono della crittografia a 128 bit.

validation

Attributo MachineKeyValidation obbligatorio.

Specifica il tipo di crittografia utilizzato per la convalida dei dati.

Questo attributo può avere uno dei seguenti valori. Il valore predefinito è SHA1.

Valore

Descrizione

AES

Specifica che in ASP.NET viene utilizzato l'algoritmo AES (Rijndael) per convalidare i dati.

MD5

Specifica che in ASP.NET viene utilizzato l'algoritmo di hash Message Digest 5 (MD5) per convalidare i dati. L'algoritmo MD5 garantisce prestazioni migliori rispetto all'algoritmo SHA1.

SHA1

Specifica che in ASP.NET viene utilizzato l'algoritmo di hash SHA1 per convalidare i dati. Utilizzare questo algoritmo per una maggiore sicurezza.

Rappresenta il valore predefinito.

3DES

Specifica che in ASP.NET viene utilizzato l'algoritmo TripleDES per convalidare i dati. L'algoritmo TripleDES utilizza tre iterazioni successive dell'algoritmo DES.

validationKey

Attributo String obbligatorio.

Specifica la chiave utilizzata per la convalida dei dati crittografati. validationKey viene utilizzato quando enableViewStateMAC è true per la creazione di codice MAC per garantire che lo stato della visualizzazione non sia stato alterato. validationKey viene inoltre utilizzato per generare ID di sessione out-of-process specifici dell'applicazione per garantire che le variabili di stato della sessione vengano isolate tra una sessione e l'altra.

Il modificatore IsolateApps del valore validationKey indica che ASP.NET genera una chiave crittografata univoca per ogni applicazione utilizzando l'ID dell'applicazione. IsolateApps è incluso come parte del valore predefinito.

Se è necessario supportare la configurazione in una rete di server Web (Web farm), impostare manualmente l'attributo validationKey per assicurare la coerenza della configurazione.

Questo attributo può avere uno dei seguenti valori. Il valore predefinito è "AutoGenerate,IsolateApps".

Valore

Descrizione

AutoGenerate, IsolateApps

Il modificatore AutoGenerate specifica che in ASP.NET viene generata una chiave casuale, quindi memorizzata nell'Autorità di sicurezza locale. Il modificatore IsolateApps specifica che in ASP.NET viene generata una chiave crittografata univoca per ogni applicazione utilizzando l'ID dell'applicazione. Questo è il valore predefinito.

value

Specifica una chiave assegnata manualmente. Questo valore deve essere impostato su una stringa di caratteri esadecimali per garantire una configurazione coerente in una Web farm. La chiave deve essere lunga 16 caratteri esadecimali quando si utilizza la crittografia DES e 48 caratteri esadecimali quando si utilizza la crittografia Triple DES (3 DES) o AES. Se si utilizzano chiavi più brevi della lunghezza massima, è necessario crearle in modo casuale, ad esempio utilizzando la classe RNGCryptoServiceProvider. Con ASP.NET è possibile utilizzare Triple DES solo su computer che dispongono della crittografia a 128 bit.

Elementi figlio

Nessuno.

Elementi padre

Elemento

Descrizione

configuration

Specifica l'elemento di primo livello necessario in ciascun file di configurazione utilizzato in Common Language Runtime e nelle applicazioni .NET Framework.

system.web

Specifica l'elemento di primo livello per le impostazioni di configurazione ASP.NET in un file di configurazione e contiene gli elementi per la configurazione di applicazioni Web ASP.NET e il controllo del comportamento delle stesse.

Note

Nell'esempio di codice che segue viene illustrato come impostare gli attributi validationKey e decryptionKey su AutoGenerate. Il valore isolateApps viene specificato per generare chiavi univoche per ogni applicazione sul server.

<machineKey 
   validationKey="AutoGenerate,IsolateApps" 
   decryptionKey="AutoGenerate,IsolateApps" 
   validation="SHA1"
/>

Informazioni sull'elemento

Gestore della sezione di configurazione

MachineKeySection

Membro di configurazione

MachineKey

Percorsi configurabili

File Machine.config

File Web.config a livello principale

File Web.config a livello di applicazione

Requisiti

Microsoft Internet Information Services (IIS) versione 5.0, 5.1 o 6.0

.NET Framework versione 1.0, 1.1 o 2.0

Vedere anche

Attività

Procedura dettagliata: crittografia delle informazioni di configurazione utilizzando la configurazione protetta

Procedura: configurare directory specifiche utilizzando le impostazioni posizione

Procedura: bloccare le impostazioni di configurazione di ASP.NET

Concetti

Protezione dei ruoli

Protezione dell'appartenenza

Protezione delle proprietà dei profili

Protezione dello stato sessione

Gerarchia ed ereditarietà dei file di configurazione di ASP.NET

Protezione della configurazione di ASP.NET

Scenari di configurazione ASP.NET

Riferimenti

Elemento system.web (schema delle impostazioni ASP.NET)

Elemento configuration (schema delle impostazioni generali)

System.Configuration

System.Web.Configuration

MachineKeySection

MachineKey

Altre risorse

Impostazioni di configurazione generali (ASP.NET)

Impostazioni di configurazione di ASP.NET

Amministrazione di siti Web ASP.NET

API di configurazione di ASP.NET