ASP.NET il ruolo di machineKey
Se il tuo Asp.Net esegue il programma e incontra questo errore: "Valida lo stato della visualizzazione MAC fallito." Se questa applicazione è ospitata da una rete farm o cluster, assicurarsi che la <machineKey> configurazione specifichi lo stesso validationKey e l'algoritmo di validazione. AutoGenerate non può essere utilizzato in un cluster. Qual è lo scopo di machineKeys se la tua applicazione non utilizza una machineKey unificata? Secondo gli standard MSDN: "Configurare le chiavi da utilizzare per criptare e decriptare i dati dei cookie di autenticazione dei moduli e visualizzare i dati di stato, nonché per convalidare le identità di stato delle sessioni fuori processo." In altre parole, molte delle crittgrafie Asp.Net si basano sui valori presenti nella machineKey, come il cookie di autenticazione Forms e la crittografia dello ViewState. Di default, la configurazione del Asp.Net viene generata dinamicamente da sola, se un singolo server va bene ovviamente, ma se più server sono bilanciati al carico, machineKey adotta anche un metodo di generazione dinamica, il valore di machineKey su ciascun server è incoerente, risultando in risultati cifrati incoerenti, e non può condividere verifica e ViewState, quindi per il bilanciamento del carico più server deve essere configurato lo stesso machineKey in ogni sito.
Algoritmo generato ASP.NET machineKey:
|