ViewState недействителен только в Safari - PullRequest
13 голосов
/ 04 августа 2008

Один из сайтов, которые я поддерживаю, сильно зависит от использования ViewState (это не мой код). Тем не менее, на некоторых страницах, где ViewState является лишним, Safari выдает ошибку "Validation of viewstate MAC failed".

Это, кажется, происходит только в Safari. Firefox, IE и Opera успешно загружаются в одном сценарии.

Ответы [ 3 ]

4 голосов
/ 04 августа 2008

Пока я поддерживаю решение Channel 9, помните, что в некоторых хостинговых средах Safari не считается браузером верхнего уровня. Возможно, вам придется добавить его в browscap вашего приложения, чтобы использовать некоторые функции ASP.Net.

Это было основной причиной некоторых головных болей, которые мы испытывали для сайта клиента, который использовал элемент управления ASP Menu.

3 голосов
/ 04 августа 2008

Мой первый порт захода - просмотреть элементы на странице и посмотреть, какие элементы управления:

  1. Будет работать, когда я выключу ViewState
  2. Может быть перемещен со страницы в вызов AJAX и загружен при необходимости

В противном случае, и вот отказ от ответственности - я никогда не использовал это решение на веб-сайте - но в прошлом, когда я хотел исключить массивные ViewStates в приложениях с ограниченной аудиторией, я сохранял ViewState в сессия.

Это сработало для меня, потому что обращение к памяти несущественно для числа пользователей, но если вы используете довольно популярный сайт, я бы не рекомендовал такой подход. Тем не менее, если решение Session работает для Safari, вы всегда можете обнаружить пользовательский агент и подобрать подходящее решение.

2 голосов
/ 04 августа 2008

Я провел небольшое исследование в этой области, и хотя я не совсем уверен, что причина в том, что Safari не возвращает полный набор результатов (следовательно, обрезает его).

Я был в разногласиях с другим разработчиком и нашел следующий пост на канале 9, который также рекомендует использовать службу состояния SQL для хранения состояния просмотра, избегая проблемы обратной передачи, а также размера страницы.

http://channel9.msdn.com/forums/TechOff/250549-ASPNET-ViewState-flawed-architecture/?CommentID=270477#263702

Это кажется лучшим решением?

...