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|value[,IsolateApps]"
decryptionKey="AutoGenerate|value[,IsolateApps]"
validation="[SHA1|MD5|3DES]"
decryption="[Auto|]"
/>
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ò essere uno dei valori riportati di seguito.
|
Valore
|
Descrizione
| | Auto | Specifica che l'algoritmo di decrittografia da utilizzare viene determinato da ASP.NET in base alle impostazioni predefinite di configurazione. Rappresenta il valore 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. |
Questo attributo è nuovo in .NET Framework versione 2.0. Il valore predefinito è "Auto". |
| 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. Se si aggiunge il modificatore IsolateApps all'attributo, in ASP.NET viene generata una chiave crittografata univoca per ogni applicazione utilizzando l'ID di ogni applicazione. IsolateApps fa anche 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ò essere uno dei valori riportati di seguito.
|
Valore
|
Descrizione
| | AutoGenerate | Specifica che in ASP.NET viene generata una chiave casuale, quindi memorizzata nell'Autorità di protezione locale. Questo valore rappresenta l'impostazione predefinita. Se si aggiunge il modificatore IsolateApps al valore decryptionKey, in ASP.NET viene generata una chiave crittografata univoca per ogni applicazione utilizzando l'ID dell'applicazione. | | 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 quando si utilizza la crittografia DES e 48 caratteri quando si utilizza la crittografia Triple DES (3 DES). 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. Se si aggiunge il modificatore IsolateApps al valore decryptionKey, in ASP.NET viene generata una chiave crittografata univoca per ogni applicazione utilizzando l'ID dell'applicazione. |
L'impostazione predefinita è "AutoGenerate,IsolateApps". |
| validation | Attributo MachineKeyValidation obbligatorio. Specifica il tipo di crittografia utilizzato per la convalida dei dati. Questo attributo può essere uno dei valori riportati di seguito.
|
Valore
|
Descrizione
| | 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. | | MD5 | Specifica che in ASP.NET viene utilizzato l'algoritmo di hash Message Digest 5 (MD5). L'algoritmo MD5 garantisce prestazioni migliori rispetto all'algoritmo SHA1. | | SHA1 | Specifica che in ASP.NET viene utilizzato l'algoritmo di hash SHA1. Utilizzare questo algoritmo per una maggiore protezione. Questo valore rappresenta l'impostazione predefinita. | | TripleDES | Specifica che in ASP.NET viene utilizzato l'algoritmo TripleDES per decrittografare i dati. L'algoritmo TripleDES utilizza tre iterazioni successive dell'algoritmo DES. In .NET Framework versione 1.0 e 1.1 il valore in questione è "3DES". |
L'impostazione predefinita è "SHA1". |
| 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. Se si aggiunge il modificatore IsolateApps al valore di ValidationKey, ASP.NET genera una chiave crittografata univoca per ogni applicazione utilizzando l'ID di ogni applicazione. IsolateApps fa anche parte del valore predefinito. Se è necessario supportare la configurazione in una rete di server Web (Web farm), impostare manualmente la proprietà ValidationKey per assicurare la coerenza della configurazione. L'attributo validationKey può essere uno dei valori riportati di seguito.
|
Valore
|
Descrizione
| | AutoGenerate | Specifica che in ASP.NET viene generata una chiave casuale, quindi memorizzata nell'Autorità di protezione locale. Questa opzione è il valore predefinito. Se si aggiunge il modificatore IsolateApps al valore validationKey, in ASP.NET viene generata una chiave crittografata univoca per ogni applicazione utilizzando l'ID dell'applicazione. | | 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 quando si utilizza la crittografia DES e 48 caratteri quando si utilizza la crittografia Triple DES. Se si utilizzano chiavi più brevi della lunghezza massima, è necessario crearle in modo casuale, ad esempio utilizzando la classe >CryptographyRNGCryptoServiceProvider. Con ASP.NET è possibile utilizzare Triple DES solo su computer che dispongono della crittografia a 128 bit. Se si aggiunge il modificatore IsolateApps al valore validationKey, in ASP.NET viene generata una chiave crittografata univoca per ogni applicazione utilizzando l'ID dell'applicazione. |
L'impostazione predefinita è "AutoGenerate,IsolateApps". |
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 che consentono di configurare le applicazioni Web ASP.NET e di controllarne il comportamento. |
L'elemento machineKey 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.
Configurazione predefinita
L'elemento machineKey predefinito riportato di seguito non viene configurato in modo esplicito nel file Machine.config o nel file Web.config principale. Si tratta, tuttavia, della configurazione predefinita restituita dall'applicazione.
<machineKey
validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"
decryption="Auto"
/>
Nel file Machine.config in .NET Framework versione 1.1 viene configurato l'elemento machineKey predefinito riportato di seguito.
<machineKey
validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"
/>
Nel file Machine.config in .NET Framework versione 1.0 viene configurato l'elemento machineKey predefinito riportato di seguito.
<machineKey
validationKey="AutoGenerate"
decryptionKey="AutoGenerate"
validation="SHA1"
/>
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 | Machine.config Web.config a livello di radice 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 Microsoft Visual Studio 2003 o Visual Studio 2005 |
Attività
Procedura dettagliata: crittografia delle informazioni di configurazione utilizzando la configurazione protetta
Procedura: configurare directory specifiche utilizzando impostazioni di percorso
Procedura: bloccare le impostazioni di configurazione di ASP.NET
Riferimenti
Elemento system.web (schema delle impostazioni ASP.NET)
Elemento configuration (schema delle impostazioni generali)
System.Configuration
System.Web.Configuration
MachineKeySection
MachineKey
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
Altre risorse
Impostazioni di configurazione generali (ASP.NET)
Impostazioni di configurazione di ASP.NET
Configurazione di applicazioni ASP.NET
API di configurazione di ASP.NET