ASP.NET mašinos vaidmuo
Jei jūsų Asp.Net paleidžia programą ir susiduria su šia klaida: "Patikrinti peržiūros būseną MAC nepavyko". Jei šią programą nuomoja tinklo ūkis arba klasteris, įsitikinkite, kad <machineKey> konfigūracija nurodo tą patį validationKey ir tikrinimo algoritmą. Automatinio generavimo negalima naudoti klasteryje. Taigi, koks yra machineKeys tikslas, jei neturite savo programos naudojant vieningą machineKey? Pagal MSDN standartus: "Konfigūruokite raktus, kurie bus naudojami formų autentifikavimo slapukų duomenims šifruoti ir iššifruoti, būsenos duomenims peržiūrėti ir neapdorotoms seanso būsenos tapatybėms patvirtinti". Kitaip tariant, daugelis šifravimo Asp.Net priklauso nuo machineKey reikšmių, pvz., formų autentifikavimo slapuko ir ViewState šifravimo. Pagal numatytuosius nustatymus Asp.Net konfigūracija dinamiškai generuojama savaime, jei vienas serveris, žinoma, yra gerai, bet jei keli serveriai yra subalansuoti apkrova, "machineKey" taip pat taiko dinaminį generavimo metodą, kiekvieno serverio "machinekey" reikšmė yra nenuosekli, todėl gaunami nenuoseklūs užšifruoti rezultatai ir negali dalytis patvirtinimu ir "ViewState", todėl norint subalansuoti kelis serverius, kiekvienoje svetainėje turi būti sukonfigūruotas tas pats "machineKey".
Algoritmas ASP.NET sugeneruotas machineKey:
|