ASP.NET роль machineKey
Если ваш Asp.Net запускает программу и сталкивается с такой ошибкой: «Проверка статуса просмотра, MAC failed.» Если это приложение размещено на сетевой ферме или кластере, убедитесь, что <machineKey> конфигурация указывает одинаковый алгоритм валидацииKey и валидации. AutoGenerate нельзя использовать в кластере. Так какова цель machineKeys, если ваше приложение не использует единый машинный ключ? Согласно стандартам MSDN: «Настройте ключи для шифрования и расшифровки данных аутентификационных файлов Forms и просмотра данных состояния, а также для проверки идентичностей состояний сессий вне процесса.» Другими словами, многие шифрования Asp.Net зависят от значений в машинном ключе, таких как куки аутентификации Forms и шифрование ViewState. По умолчанию конфигурация Asp.Net генерируется динамически сама по себе, если один сервер, конечно, подходит, но если несколько серверов балансированы по нагрузке, machineKey также использует метод динамической генерации, значение машинного ключа на каждом сервере непоследовательно, что приводит к несогласованным зашифрованных результатам и не может делиться верификацией и ViewState, поэтому для балансировки нагрузки на несколько серверов один и тот же machineKey должен быть настроен на каждом сайте.
Алгоритм, сгенерированный ASP.NET machineKey:
|