Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top