Дополнительные члены HttpSessionState

Дополнительные члены HttpSessionState

Кроме индексатора типа, класс HttpSessionState определяет ряд других интересных членов. Во-первых, свойство SessionID возвращает уникальный идентификатор текущего пользователя.

lblUserID.Text = string.Format("Значение вашего ID: {0}", Session.SessionID);

Методы Remove() и RemoveAll() можно использовать для удаления элементов из экземпляра HttpSessionState пользователя.

Session.Remove["НекоторыеУжеНенужныеЭлементы"];

Тип HttpSessionState определяет также набор членов, управляющих значениями времени ожидания для текущего сеанса. Снова подчеркнем, что по умолчанию каждому пользователю позволяется 20 минут бездействия до того, как объект HttpSessinState будет уничтожен. Поэтому если пользователь войдет в ваше Web-приложение (и получит в результате этого свое уникальное значение идентификатора сеанса), но не будет обращаться к узлу в течение 20 минут, среда выполнения "решит", что пользователь больше не интересуется узлом и уничтожает все сеансовые данные этого пользователя. Вы имеете возможность изменить это принятое по умолчанию 20-минутное значение для каждого пользователя в отдельности, используя свойство Timeout. Чаще всего для такого изменения используется контекст метода Global.Session_Start().

protected void Session_Start(Object sender, EventArgs e) {

 // Пользователю разрешается 5 минут бездействия.

 Session.Timeout = 5;

 Session["UserShoppingCartInfo"] = new UserShoppingCart();

}

Замечание. Чтобы не менять значение Timeout каждого пользователя, вы можете изменить принятое по умолчанию 20-минутное значение для всех пользователей сразу с помощью атрибута Timeout элемента ‹sessionState› в файле Web.config (структура и возможности этого файла будут рассмотрены в конце главы).

Преимущество использования свойства Timeout заключается в том, что вы можете назначить свои значения времени ожидания для каждого пользователя в отдельности. Например, представьте себе, что ваше Web-приложение позволяет пользователям заплатить за некоторый уровень членства. Вы можете потребовать, чтобы "золотым" членам устанавливалось время ожидания, равное одному часу, а "деревянным" – только 30 секунд. Такая возможность порождает следующий вопрос: как реализовать запоминание соответствующей информации пользователя (например, текущий уровень его членства) между обращениями к Web-странице? Одной из возможностей является использование типа HttpCookie.

Исходный код, Файлы примера SessionState размещены в подкаталоге, соответствующем главе 24.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.4.4 Статические Члены

Из книги C++ автора Хилл Мюррей

5.4.4 Статические Члены Класс – это тип, а не объект данных, и в каждом объекте класса имеется своя собственная копия данных, членов этого класса. Однако некоторые типы наиболее элегантно реализуются, если все объекты этого типа могут совместно использовать (разделять)


5.4.5 Указатели на Члены

Из книги Справочное руководство по C++ автора Страустрап Бьярн

5.4.5 Указатели на Члены Можно брать адрес члена класса. Получение адреса функции члена часто бывает полезно, поскольку те цели и причины, кторые приводились в #4.6.9 относительно указателей на фунции, в равной степени применимы и к функциям членам. Однако, на настоящее время в


5.4.5 Указатели на Члены

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

5.4.5 Указатели на Члены Можно брать адрес члена класса. Получение адреса функции члена часто бывает полезно, поскольку те цели и причины, кторые приводились в #4.6.9 относительно указателей на фунции, в равной степени применимы и к функциям членам. Однако, на настоящее время в


6.10 Друзья и Члены

Из книги C++ для начинающих автора Липпман Стенли

6.10 Друзья и Члены Теперь, наконец, можно обсудить, в каких случаях для доступа к закрытой части определяемого пользователем типа ипользовать члены, а в каких – друзей. Некоторые операции должны быть членами: конструкторы, деструкторы и виртуальные функции (см. следующую


7.2.2 Функции Члены

Из книги автора

7.2.2 Функции Члены Просто структуры данных вроде employee и manager на смом деле не столь интересны и часто не особенно полезны, потому рассмотрим, как добавить в них функции. Например:class employee (* char* name; // ... public: employee* next; void print(); // ... *);class manager : public employee (* // ... public: void print(); // ... *);Надо


8.5.1 Статические Члены

Из книги автора

8.5.1 Статические Члены Член данные класса может быть static; члены функции не могут. Члены не могут быть auto, register или extern. Есть единственная копия статического члена, совместно используемая всеми членами класса в программе. На статический член mem класса cl можно ссылаться cl:mem,


8.5.2 Функции Члены

Из книги автора

8.5.2 Функции Члены Функция, описанная как член, (без спецификатора friend (#8.5.10)) называется функцией членом и вызывается с исползованием синтаксиса члена класса (#7.1). Например:struct tnode (* char tword[20]; int count; tnode *left; tnode *right; void set (char* w,tnode* l,tnode* r); *);tnode n1, n2; n1.set («asdf», amp;n2,0); n2.set


R.4.8 Указатели на члены

Из книги автора

R.4.8 Указатели на члены Всюду, где указатели на члены (§R.8.2.3) инициализируются, присваиваются, сравниваются или используются иным образом, могут происходить следующие преобразования:Константное выражение (§R.5.19), которое сводится к нулю, преобразуется в указатель на член.


R.8.2.3 Указатели на члены

Из книги автора

R.8.2.3 Указатели на члены В описании T D, в котором D имеет видполное-имя-класса :: * список-спецификаций-cv opt D1тип описываемого идентификатора есть "… список-спецификаций-cv указатель на член класса полное-имя-класса типа T".Например, во фрагментеclass X {public: void f(int); int a;};int X::* pmi =


R.9.2 Члены класса

Из книги автора

R.9.2 Члены класса список-членов: описание-члена список-членов opt спецификация-доступа : список-членов optописание-члена: спецификации-описания opt список-описателей-членов opt ; определение-функции ; opt уточненное-имя


R.9.3 Функции-члены

Из книги автора

R.9.3 Функции-члены Функция, описанная как член (без спецификации friend §R.11.4), называется функция-член и вызывается в соответствии с синтаксисом члена класса (§R.5.2.4), например:struct tnode { char tword[20]; int count; tnode *left; tnode *right; void set(char*, tnode* l, tnode *r);};Здесь set является функцией-членом и может


R.9.4 Статические члены

Из книги автора

R.9.4 Статические члены Для члена класса, представляющего данные или функцию, можно при описании класса задать спецификацию static. Для статического члена, представляющего данные, в программе существует только один экземпляр, которым владеют все объекты этого класса.


Члены типов

Из книги автора

Члены типов Теперь после рассмотрения всех типов, имеющих формальное определение в CTS, вы должны осознать, что большинство типов может иметь любое число членов. Формально член типа - это любой элемент множества {конструктор, деструктор (finalizer), статический конструктор,


13.1.2. Функции-члены

Из книги автора

13.1.2. Функции-члены Пользователям, по-видимому, понадобится широкий набор операций над объектами типа Screen: возможность перемещать курсор, проверять и устанавливать области экрана и рассчитывать его реальные размеры во время выполнения, а также копировать один объект в


15.1.1. Члены и не члены класса

Из книги автора

15.1.1. Члены и не члены класса Рассмотрим операторы равенства в нашем классе String более внимательно. Первый оператор позволяет устанавливать равенство двух объектов, а второй – объекта и C-строки:#include "String.h"int main() {String flower;// что-нибудь записать в переменную flowerif ( flower == "lily" ) //


16.7. Шаблоны-члены

Из книги автора

16.7. Шаблоны-члены Шаблон функции или класса может быть членом обычного класса или шаблона класса. Определение шаблона-члена похоже на определение шаблона: ему предшествует ключевое слово template, за которым идет список параметров:template class Tclass Queue {private:// шаблон