ASP.NET rola machineKey
Jeśli Twój Asp.Net uruchomi program i napotka ten błąd: "Validate view status MAC failed." Jeśli aplikacja jest hostowana przez farmę sieciową lub klaster, upewnij się, że <machineKey> konfiguracja zawiera ten sam Klucz walidacyjny i algorytm walidacyjny. AutoGenerate nie może być używany w klastrze. Jaki jest więc cel machineKeys, jeśli nie używasz zunifikowanego machineKey? Zgodnie ze standardami MSDN: "Konfiguruj klucze używane do szyfrowania i odszyfrowywania danych ciasteczek uwierzytelniania formularzy oraz przeglądania danych stanów oraz do weryfikacji tożsamości stanu sesji poza procesem." Innymi słowy, wiele szyfrowań Asp.Net opiera się na wartościach w machineKey, takich jak ciasteczko uwierzytelniające Forms oraz szyfrowanie ViewState. Domyślnie konfiguracja Asp.Net jest dynamicznie generowana samodzielnie, jeśli pojedynczy serwer jest oczywiście w porządku, ale jeśli wiele serwerów jest zbalansowanych obciążeniowo, machineKey również stosuje metodę generowania dynamicznego, wartość klucza maszynowego na każdym serwerze jest niespójna, co skutkuje niespójnymi zaszyfrowanymi wynikami, i nie może współdzielić weryfikacji oraz ViewState, więc dla równoważenia obciążenia wielu serwerów ten sam maszynowy klucz musi być skonfigurowany w każdej lokalizacji.
Algorytm generowany ASP.NET machineKey:
|