Сведения о вопросе

Electro Full

16:03, 1st July, 2020

Теги

c#   .net   safari   viewstate    

Отображение недействительным только в Safari

Просмотров: 517   Ответов: 3

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

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



  Сведения об ответе

LIZA

18:03, 1st July, 2020

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

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


  Сведения об ответе

LAST

18:03, 1st July, 2020

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

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

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

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


  Сведения об ответе

VERSUION

18:03, 1st July, 2020

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

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

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться