Поделиться через


Контроль состояния сеанса

Обновлен: Ноябрь 2007

Microsoft ASP.NET предоставляет объект HttpSessionState, который можно использовать для сохранения сведений о пользовательском сеансе для различных запросов. Функция управления сеансом ASP.NET является масштабируемой и надежной, и ее можно использовать в различных веб-фермах.

По умолчанию объект сеанса ASP.NET использует файл Cookie со стороны клиента для сохранения идентификатора. Этот идентификатор используется для обнаружения сеанса во время обмена данными с сервером. Однако ASP.NET также поддерживает сеансы без файлов Cookie, при которых клиент изначально перенаправляется на новый URL-адрес, содержащий идентификатора сеанса, а затем автоматически выполняется анализ идентификатора сеанса без URL-адреса.

При работе с мобильными веб-страницами ASP.NET, использующими состояние сеанса, необходимо принимать во внимание следующие факторы:

  • Некоторые мобильные устройства и шлюзы не поддерживают файлы Cookie. В таких случаях для управления сеансами на веб-сервере должен быть установлен режим без поддержки файлов Cookie.

  • У некоторых мобильных устройств возникают проблемы при обработке относительных URL-адресов после выполнения перенаправления системой управления сеансами без поддержки файлов Cookie.

Некоторые мобильные устройства не поддерживают файлы Cookie, поэтому необходимо использовать альтернативные методы для сценариев, требующих постоянного состояния. Например, если пользователь входит на страницу, приложение может назначить идентификатор входа, который используется для оставшейся части сеанса. Обычно для этой формы проверки подлинности используется файл Cookie, поэтому она называется проверкой подлинности, основанной на файлах Cookie. Однако проверка подлинности на основе файлов Cookie не может использоваться устройствами, не поддерживающими файлы Cookie. Вместо этого необходимо использовать иной механизм управления состоянием.

Состояние сеанса

Одним из альтернативных вариантов является использование состояния сеанса. Так как можно настроить состояние сеанса для работы без файлов Cookie, пользователь может хранить идентификатор в состоянии сеанса. Однако недостатком этого метода является завершения срока действия данных одновременно с завершением срока действия сеанса. Другим недостатком является то, что для использования этого метода необходимо постоянное использование состояния сеанса.

Скрытые переменные

Мобильные веб-страницы ASP.NET не включают элементы управления для мобильных устройств для выписки скрытых переменных. Вместо этого форма предоставляет коллекцию, называемую HiddenVariables, в рамках класса MobilePage. Все пары имя-значение, хранящиеся в этой коллекции, сохраняются как скрытые переменные. Коллекция HiddenVariables автоматически перезаполняется этими скрытыми переменными при передаче формы.

Этот альтернативный вариант использует скрытые переменные на странице. Скрытые переменные автоматически передаются повторно как часть отправки формы вне зависимости от того, выполняется ли отправка для той же или для другой страницы.

См. также

Основные понятия

Управление состоянием просмотра

Общие сведения об управлении состоянием ASP.NET

Ссылки

LoadPrivateViewState

SavePrivateViewState

HiddenVariables

MobilePage

Другие ресурсы

Поддержка состояния просмотра

Создание веб-страниц ASP.NET для мобильных устройств

Руководство разработчика приложений

Разработка веб-страниц ASP.NET для мобильных устройств