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.
<machineKey validationKey="AutoGenerate|value[,IsolateApps]" decryptionKey="AutoGenerate|value[,IsolateApps]" validation="[SHA1|MD5|3DES]" decryption="[Auto|]" />
Le seguenti sezioni illustrano attributi, elementi figlio e padre.
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.
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.
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.
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
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.
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.
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.
Nessuno.
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.
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.
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