Не удалось проверить MAC-адрес состояния в Safari - PullRequest
0 голосов
/ 28 мая 2009

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 20 апреля 2012

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

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

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

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

0 голосов
/ 16 июля 2009

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

...