ASP.NET role machineKey
Pokud váš Asp.Net spustí program a narazí na tuto chybu: "Validate view status MAC selhal." Pokud je tato aplikace hostována na síťové farmě nebo clusteru, ujistěte se, že <machineKey> konfigurace specifikuje stejný validační klíč a validační algoritmus. AutoGenerate nelze použít v clusteru. Jaký je tedy účel machineKeys, pokud vaše aplikace nepoužívá sjednocený machineKey? Podle standardů MSDN: "Konfigurujte klíče pro šifrování a dešifrování dat cookie pro ověřování formulářů a zobrazení stavových dat, a pro ověřování identity stavu relací, které nejsou v procesu." Jinými slovy, mnoho šifrování Asp.Net závisí na hodnotách v machineKey, například ověřovací cookie Forms a šifrování ViewState. Ve výchozím nastavení je konfigurace Asp.Net dynamicky generována sama o sobě, pokud je samozřejmě v pořádku jeden server, ale pokud je více serverů vyvažováno zatížení, machineKey také používá metodu dynamické generace, hodnota machinekey na každém serveru je nekonzistentní, což vede k nekonzistentním šifrovaným výsledkům, a nemůže sdílet ověřování a ViewState, takže pro vyvažování zátěže více serverů musí být na každé lokalitě nakonfigurován stejný machineKey.
Algoritmus generovaný ASP.NET machineKey:
|