ASP.NET vloga machineKey
Če vaš Asp.Net zažene program in naleti na to napako: "Validate view status MAC failed." Če je ta aplikacija gostovana na omrežni farmi ali gruči, poskrbite, da <machineKey> konfiguracija določa isti validacijski ključ in validacijski algoritem. AutoGenerate ni mogoče uporabiti v gruči. Kakšen je torej namen machineKeys, če vaša aplikacija ne uporablja enotnega machineKey? Po standardih MSDN: "Konfigurirajte ključe, ki se uporabljajo za šifriranje in dešifriranje podatkov piškotkov za overitev obrazcev in ogled podatkov o stanju ter za preverjanje identitet stanja sej, ki so izven procesa." Z drugimi besedami, veliko šifriranj Asp.Net temelji na vrednostih v machineKey, kot sta piškotek za avtentikacijo Forms in šifriranje ViewState. Privzeto se konfiguracija Asp.Net dinamično generira sama od sebe, če je seveda dovolj en strežnik, vendar če je več strežnikov uravnoteženih z obremenitvijo, machineKey prav tako uporablja metodo dinamičnega generiranja, vrednost strojnega ključa na vsakem strežniku je nedosledna, kar povzroča nedosledne šifrirane rezultate, in ne more deliti preverjanja in ViewState, zato mora biti za uravnoteženje obremenitve več strežnikov na vsaki lokaciji nastavljen isti strojni ključ.
Algoritem, ustvarjen ASP.NET machineKey:
|