Ошибка проверки MAC состояния просмотра в Safari

У меня есть веб-приложение, использующее проверку подлинности с помощью форм. Когда я выполняю следующие шаги

  1. Дать срок действия cookie для входа в систему
  2. Щелкните ссылку, для которой требуется авторизованный пользователь.
  3. Пользователь перенаправляется на страницу входа
  4. Нажмите кнопку браузера назад
  5. Пользователь снова перенаправляется на страницу входа в систему.
  6. Войдите в систему, используя действительное имя пользователя / пароль

Я получаю это исключение. Ошибка проверки MAC состояния просмотра. Если это приложение размещено на веб-ферме или кластере, убедитесь, что в конфигурации указан один и тот же ключ проверки и алгоритм проверки. AutoGenerate нельзя использовать в кластере.

Этот случай появляется только в сафари (windows и mac). Принципиальное различие между Safari и другими браузерами заключается в том, что когда мы нажимаем кнопку «Назад» на шаге 4, safari снова показывает страницу входа в систему, в то время как другие браузеры показывают предыдущую страницу, над которой работал пользователь.

Пожалуйста, помогите в этом отношении


person Midhat    schedule 28.05.2009    source источник


Ответы (2)


У нас была аналогичная проблема с viewstate, начиная с Safari v 5.1.4.

Наша проблема возникла из-за того, что мы отправили форму во время события window.onload, а затем перенаправили на новую страницу. При отправке второй страницы мы получим отчет, о котором вы сообщаете.

Мы определили, что safari 5.1.4 и 5.1.5 отправляли состояние просмотра для предыдущей страницы, когда мы отправляли вторую страницу, что вызывает ошибку проверки.

См. Мой ответ в этой теме ASP.NET Viewstate с Safari 5.x

person Robert Zieroth    schedule 20.04.2012

Хотя я видел в своем журнале ошибки, которые заставляют меня думать, что я сталкиваюсь с той же проблемой, что и вы, я еще не смог воспроизвести ошибку в образце приложения. Я предполагаю, что информация о состоянии просмотра со страницы с тайм-аутом отправляется на страницу входа, что является недопустимым. Чтобы исправить это, можно добавить что-то в начале жизненного цикла страницы входа (например, Page_Init), которое распознает, когда происходит перенаправление на страницу входа (возможно, через реферер), и обходит проверку состояния просмотра.

person Bernard Chen    schedule 16.07.2009