ASP.NET a machineKey szerepe
Ha a Asp.Net futtatja a programot, és ezzel a hibával találkozik: "Validálja a nézet állapotát a MAC failed." Ha ez az alkalmazás hálózati farm vagy klaszter által üzemelteti, győződjön meg róla, hogy <machineKey> a konfiguráció ugyanazt a validációkulcsot és az ellenkereső algoritmust határozza meg. Az AutoGenerate nem használható klaszterben. Szóval mi a MachineKeys célja, ha az alkalmazásod nem használ egységes gépKey-t? Az MSDN szabványok szerint: "Konfiguráljuk azokat a kulcsokat, amelyeket a Forms hitelesítési cookie-adatok titkosítására és dekódolására, állapotadatok megtekintésére, valamint a folyamaton kívüli ülésállapot identitásainak validálására használnak." Más szóval, sok titkosítás Asp.Net a machineKey értékeire támaszkodik, például a Forms hitelesítési sütire és a ViewState titkosítására. Alapértelmezés szerint a Asp.Net konfigurációja dinamikusan generálódik önállóan, ha egy szerver természetesen rendben van, de ha több szerver is terheléselosztásban van, a machineKey dinamikus generálási módszert is alkalmaz, az egyes szerverek gépkulcsértéke következetlen, ami következetlen titkosított eredményeket eredményez, és nem tudja megosztani a hitelesítést és a ViewState-et, így több szerver terheléselosztásához ugyanazt a gépkulcsot kell konfigurálni minden helyszínen.
Algoritmus generált ASP.NET machineKey:
|