Для поддержки состояния сеанса работы пользователя предназначен объект Session (класса HttpSessionState). Он используется для хранения пользовательских данных любого типа, которые необходимо сохранять между последовательностью запросов одного и того же пользователя.
При выполнении пользователем первого запроса к приложению создается отдельный сеанс работы и отдельная коллекция данных. Данные этой коллекции будут сохраняться до окончания сеанса работы пользователя. Состояние сеанса уничтожается в следующих случаях:
- 1) если пользователь закрывает браузер;
- 2) по истечении некоторого заданного времени с момента последней активности пользователя;
- 3) при явном завершении сеанса из программного кода с помощью вызова метода Session. Abandon ().
По умолчанию объекты Session хранятся в оперативной памяти сервера, но есть и другие возможности хранения состояния в отдельном сервисе или даже базе данных. Как и другие параметры webприложения, способ хранения состояния задается в конфигурационном файле. Более подробно данная тема описана в [5, 9].
Необходимо учитывать, что даже при маленьком объеме хранимых данных сеанса их использование может оказать влияние на производительность работы приложения в том случае, если к web-приложению одновременно будут обращаться сотни или даже тысячи пользователей.
Работа с состоянием сеанса практически аналогична работе с состоянием вида, за исключением того, что вместо ключевого слова ViewState используется Session. Например, для сохранения объекта user в памяти сеанса необходимо выполнить следующий код:
Session[" user" ]=user;
Для восстановления сохраненного объекта user необходимо воспользоваться следующим кодом:
user=(User) Sessionfuser"];
Способ хранения состояния сеанса задается в файле конфигурации.