Какой лучше использовать ViewState или скрытое поле - PullRequest
9 голосов
/ 22 октября 2009

У меня есть страница, на которой я хочу сохранить значение объекта между постами. Я думаю о двух способах поддержания стоимости предметов

  1. Сохранить значение в View Sate
  2. Сохранить значение в скрытом поле

, который лучше всего использовать в зависимости от производительности

Ответы [ 4 ]

10 голосов
/ 22 октября 2009

Просмотр состояния, если вам не нужно ссылаться на него в сценарии на стороне клиента. Скрытое поле, если вы делаете.

Также учтите, что если данные являются конфиденциальными, ViewState по умолчанию шифруется, тогда как скрытое поле по умолчанию сохраняет его в виде обычного текста, видимого любому, кто знает, как просмотреть источник.

Редактировать

За @ Эндрю Хейр, записку о его собственном ответе, я редактирую это. Это достаточно важное различие, чтобы отметить. Я не хотел бы, чтобы кто-то думал, что он "в безопасности", используя Viewstate, основываясь на моем недосмотре.

Viewstate по умолчанию НЕ зашифровано, оно хранится в кодировке Base-64. Его можно легко декодировать, поэтому использование Viewstate, поскольку по умолчанию оно зашифровано, недопустимо. Это лучше, чем обычный текст, но не для тех, у кого есть возможность «расшифровать Viewstate» или «декодировать Viewstate».

Так что не полагайтесь на Viewstate для защиты вашей скрытой информации в коде на стороне клиента.

Статья здесь рассказывает, как правильно ее зашифровать. (но также предупреждает о проблемах производительности).

2 голосов
/ 22 октября 2009

Это не имеет значения, поскольку ViewState хранится в скрытом входе. Используйте тот, который легче для вас. Если бы это было до меня, я бы выбрал ViewState, поскольку среда выполнения ASP.NET будет обрабатывать сериализацию и десериализацию ваших объектов для вас.

0 голосов
/ 22 октября 2009

Вы хотите сохранить его в состоянии просмотра. Скрытые поля можно обновлять в браузере, так как они предназначены для хранения информации, которой можно манипулировать на стороне клиента. Состояние просмотра будет проверяться asp.net на предмет взлома, где вам придется делать это самостоятельно со скрытым полем.

0 голосов
/ 22 октября 2009

Мне нравится ViewState - его гораздо сложнее взломать - злой человек может легко отправить вам страницу с плохими данными в ваших скрытых полях

...