Я хотел использовать сеанс для хранения одной важной информации в нем, которая мне очень нужна (не может продлить срок службы).
Но сеанс может истекать курс :)
Проблема в том, что пользователь сидит и выполняет что-то, что я установил значение в сеансе, и если он уходит с компьютера и возвращается через несколько часов, чтобы продолжить, это значение будет потеряно.
Мой вопрос:
Если я сохранить это значение в hidden field
вместо session
это будет там навсегда (я имею в виду в то время как страница открыта)?
PS
У меня нет времени, чтобы проверить (ожидания), поэтому я спрашиваю :)Является скрытым полем лучше хранить значение вместо сеанса в течение длительного периода доступа
ответ
В зависимости от ваших потребностей, вы можете пойти на HiddenField
. Однако, поскольку вы будете хранить важную информацию, убедитесь, что вы добавили значение ENCRYPT до присвоения ей HiddenField
. И да, это будет долгое время.
Один довольно хороший вариант, который вы также можете попробовать, это сохранить свою информацию в ViewState
. Он не занимает никакой памяти на сервере и не налагает никаких произвольных ограничений использования (например, тайм-аут). Более того, вы можете использовать встроенное шифрование механизм, предоставляемого Asp.Net
ViewState["UserSSN"] = 1;
if (ViewState["UserSSN"] != null)
{
_userSSN= (int)ViewState["UserSSN"];
}
В случае, если вы используете ViewState
, вы должны принять ответные меры для его безопасности. Просто включите шифрование для ViewState, используя ViewStateEncryptionMode
свойство директивы страницы:
<%@Page ViewStateEncryptionMode="Always" ... %>
Или вы можете установить один и тот же атрибут в web.config
файле:
<pages viewStateEncryptionMode="Always" />
Они не являются пуленепробиваемыми, но они будут значительно увеличит усилия, которые потребуется злоумышленнику для чтения или изменения данных состояния представления.
использовать кеширование ... –
Если вы храните его в скрытом поле, тогда да, он будет там навсегда. Но обычно, когда сессия заканчивается, пользователь будет перенаправлен на страницу входа, которая приведет к исчезновению скрытого поля, так как вы больше не на той же странице. Вместо этого вы можете попробовать использовать файлы cookie. – hatcyl
Пользователь не обязан регистрироваться для процесса. – 1110