Хранение состояния сеанса работы пользователя

Для поддержки состояния сеанса работы пользователя предназначен объект Session (класса HttpSessionState). Он используется для хранения пользовательских данных любого типа, которые необходимо сохранять между последовательностью запросов одного и того же пользователя.

При выполнении пользователем первого запроса к приложению создается отдельный сеанс работы и отдельная коллекция данных. Данные этой коллекции будут сохраняться до окончания сеанса работы пользователя. Состояние сеанса уничтожается в следующих случаях:

  • 1) если пользователь закрывает браузер;
  • 2) по истечении некоторого заданного времени с момента последней активности пользователя;
  • 3) при явном завершении сеанса из программного кода с помощью вызова метода Session.Abandon().

По умолчанию объекты Session хранятся в оперативной памяти сервера, но есть и другие возможности хранения состояния в отдельном сервисе или даже базе данных. Как и другие параметры web- приложения, способ хранения состояния задается в конфигурационном файле. Более подробно данная тема описана в [5, 9].

Необходимо учитывать, что даже при маленьком объеме хранимых данных сеанса их использование может оказать влияние на производительность работы приложения в том случае, если к web-приложению одновременно будут обращаться сотни или даже тысячи пользователей.

Работа с состоянием сеанса практически аналогична работе с состоянием вида, за исключением того, что вместо ключевого слова ViewState используется Session. Например, для сохранения объекта user в памяти сеанса необходимо выполнить следующий код:

Session["user"]=user;

Для восстановления сохраненного объекта user необходимо воспользоваться следующим кодом:

user=(User) Sessionfuser”];

Способ хранения состояния сеанса задается в файле конфигурации.

 
< Пред   СОДЕРЖАНИЕ     След >