пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Понятие сессии и глобальные объекты приложения. Обработка глобальных (уровня приложения) событий в ASP.NET.

Понятие приложения только тогда можно применить к проекту, когда все его страницы работают с общей информацией. Когда пользователь регистрируется на сайте, все страницы подстраиваются под его настройки. Например, если приложение — электронный магазин, то выбранные товары помещаются в "корзину", которая "путешествует" вместе с пользователем и позволяет добавлять в нее новые товары.

Однако известно, что протокол HTTP изначально не поддерживает сессии. Обычно сервер посылает страницу в ответ на запрос, и на этом соединение обрывается. Хотя HTTP 1.1 поддерживает режим keep-alive, сервер не в состоянии определить, что запросы идут с одного и того же клиента. В ASP .NET при каждом соединении на сервере создается сессия, идентификатор которой обычно хранится в файле-cookie (или передается в командной строке, если это невозможно).

В ASP .NET есть специальный класс — HttpApplication, представляющий все приложение. Он контролирует его общее состояние и обрабатывает глобальные события.

В основном этот класс используется для хранения объектов уровня приложения. Он предоставляет словарь для хранения объектов, который доступен в любое время с любой страницы.

Приложение выполняется на сервере. Новое приложение создается, когда хотя бы один пользователь обращается к сайту. Приложение завершается, когда сервер перезагружается или меняется его конфигурация. Следующая строка кода создает переменную приложения с именем Name:

Application["Name"] = "Myname"

Также в ASP.NET присутствует другой тип окружения — сессия (объект Session класса HttpSessionState ). Сессия объединяет серию запросов с одного адреса в течение некоторого времени. В пределах сессии можно контролировать текущего пользователя, так что именно в сессии удобно отслеживать последовательность его действий. В сессии можно хранить данные, полученные из разных источников, которые относятся к пользователю, или даже объекты классов приложения.

Текущая сессия и приложение доступны с любой страницы через свойства Session и Application, так что получить доступ к ним очень просто.

Параметры сессии также доступны в виде словаря через индексатор со строковым параметром. Область видимости переменной сеанса — весь сеанс взаимодействия посетителя с приложением в конкретном окне браузера. Сеансом является период времени, когда пользователь находится на сайте. Он начинается, когда посетитель впервые заходит на сайт. Пользователь может закрыть браузер, и сервер не будет знать об этом. Поэтому в сессии существует таймаут, который по умолчанию равен 20 минутам. Если в течение этого времени пользователь не совершал активных действий на сайте, сессия считается закрытой. Для приложений, где потеря данных критична (например, финансовых), обычно таймаут уменьшают.

С каждой сессией связан 120-битный идентификатор. Он передается от сервера браузеру и обратно через cookie или через командную строку. В приложениях электронной коммерции в переменных сеанса может храниться корзина — то, что уже выбрал пользователь.

Так добавляется переменная сервера:

Session.Add("Username", "Tom");

Session["Username"]= "Tom";

Эти присваивания равносильны.

В сессии могут храниться переменные любых типов, в том числе пользовательские.

Запрос к данным сессии возвращает тип object, поэтому после получения переменной необходимо привести его к нужному типу:

Username= Session["Username"].ToString();

Таймаут сессии можно поменять:

Session.TimeOut = 5;

Явно завершить сеанс позволяет метод Abandon:

Session.Abandon();

Еще одним глобальным понятием является обработка событий уровня приложения. Это события вроде: "на одной из страниц приложения началась обработка запроса" или "на какой-то странице произошла ошибка". Такие события обрабатываются в коде файла global.asax.

Файл Global.asax — это текстовый файл, который хранится в корневой папке приложения ASP .NET. В проекте может быть только один Global.asax. Он содержит объекты, события, переменные уровня приложения. При создании файла в нем находятся функции, которые должны выполняться при наступлении любого из пяти событий, описанных в таблице.

События для файла Global.asax

Событие Условия наступления

Application_Start Первая страница приложения открывается любым пользователем

Application_End Работа приложения завершается

Session_Start Посетитель активизирует приложение

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

Application_Error При выполнении приложения возникает необработанная ошибка

Данные события предназначены для выполнения кода или создания переменных, которые существуют до тех пор, пока существует программа или пока посетитель пребывает на узле. За счет этого можно сохранять регистрационную информацию, неизменные данные для web-узла или постоянные соединения с источниками данных.


11.01.2019; 16:58
хиты: 110
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь