ASP.NET maskinnøglens rolle
Hvis din Asp.Net kører programmet og støder på denne fejl: "Validate view status MAC failed." Hvis denne applikation hostes af en netværksfarm eller klynge, skal <machineKey> konfigurationen sikre sig, at den samme validationKey og valideringsalgoritme angiver den. AutoGenerate kan ikke bruges i en klynge. Så hvad er formålet med machineKeys, hvis du ikke har din applikation med en samlet machineKey? Ifølge MSDN-standarder: "Konfigurér nøgler til at blive brugt til at kryptere og dekryptere Forms autentificeringscookie-data og se tilstandsdata, samt til at validere sessionstilstandsidentiteter uden for processen." Med andre ord Asp.Net mange af krypteringerne basere sig på værdierne i machineKey, såsom Forms autentificeringscookie og kryptering af ViewState. Som standard genereres konfigurationen af Asp.Net dynamisk af sig selv, hvis en enkelt server selvfølgelig er i orden, men hvis flere servere er load balanced, anvender machineKey også en dynamisk genereringsmetode, machinekey-værdien på hver server er inkonsistent, hvilket resulterer i inkonsistente krypterede resultater, og man kan ikke dele verifikation og ViewState, så for belastningsbalancering af flere servere skal den samme machineKey konfigureres på hvert sted.
Algoritme genereret ASP.NET machineKey:
|