Элемент sessionState (схема параметров ASP.NET)
Настраивает параметры состояния сеанса для текущего приложения.
<sessionState
mode="[Off|InProc|StateServer|SQLServer|Custom]"
timeout="number of minutes"
cookieName="session identifier cookie name"
cookieless=
"[true|false|AutoDetect|UseCookies|UseUri|UseDeviceProfile]"
regenerateExpiredSessionId="[True|False]"
sessionIDManagerType="session manager type"
sqlConnectionString="sql connection string"
sqlCommandTimeout="number of seconds"
allowCustomSqlDatabase="[True|False]"
useHostingIdentity="[True|False]"
stateConnectionString="tcpip=server:port"
stateNetworkTimeout="number of seconds"
customProvider="custom provider name"
compressionEnabled="[True|False]"
sqlConnectionRetryInterval="number of seconds">
<providers>...</providers>
</sessionState>
Атрибуты и элементы
В следующих разделах описаны атрибуты, дочерние и родительские элементы.
Атрибуты
Атрибут |
Описание |
---|---|
allowCustomSqlDatabase |
Необязательный атрибут элемента Boolean. Указывает, можно ли базой данных SQL состояний сеансов сделать пользовательскую базу данных, вместо базы данных ASP.NET по умолчанию. Если атрибут имеет значение false, ни исходный каталог, ни база данных не могут задаваться как значение для атрибута sqlConnectionString. По умолчанию базой данных SQL состояний сеансов является база данных ASPState. Дополнительные сведения см. в разделе Режимы состояний сеанса. Этот атрибут не использовался до .NET Framework версии 2.0. Значение по умолчанию — false. |
compressionEnabled |
Необязательный атрибут элемента Boolean. Указывает, применяется ли сжатие данных состояния сеанса. Значение по умолчанию — false. |
cookieless |
Необязательный атрибут элемента HttpCookieMode. Указывает, как в веб-приложении используются файлы Cookie. Атрибутcookieless может принимать только следующие значения. Значение по умолчанию — UseCookies.
Примечание
При настройке веб-узла ASP.NET с включенной поддержкой AJAX, используйте для атрибута cookieless только значение по умолчанию UseCookies.Параметры, использующие файлы Cookie, закодированные в URL-адресе, библиотеками клиентских скриптов ASP.NET AJAX не поддерживаются.
ЗначениеОписание
AutoDetect Поддерживает ли запрашивающий браузер или запрашивающее устройство файлы Cookie, определяется платформой ASP.NET.Если запрашивающий обозреватель или запрашивающее устройство поддерживает файлы Cookie, AutoDetect для хранения пользовательских данных использует файлы Сookie; в противном случае используется идентификатор в строке запроса.Если обозреватель или устройство поддерживает файлы Cookie, но эти файлы в настоящее время отключены, файлы Cookie все-таки используются механизмом запроса.
UseCookies Файлы Cookie хранят данные пользователя, независимо от того, поддерживает ли обозреватель или устройство файлы Cookie.
UseDeviceProfile ASP.NET определяет, применять ли файлы Cookie, на основании параметра HttpBrowserCapabilities.Если параметр HttpBrowserCapabilities указывает, что обозреватель или устройство поддерживает файлы Cookie, то будут использоваться эти файлы; в противном случае используется идентификатор в строке запроса.
UseUri Вызывающий механизм использует строку запроса для хранения идентификатора, независимо от того, поддерживает ли обозреватель или устройство файлы Cookie.
|
cookieName |
Необязательный атрибут элемента String. Задает имя файла Cookie, в котором хранится идентификатор сеанса. Этот атрибут не использовался до .NET Framework версии 2.0. По умолчанию используется значение "ASP.NET_SessionId". |
customProvider |
Необязательный атрибут элемента String. Задает имя пользовательского поставщика состояний сеансов, которое используется для хранения и извлечения данных состояния сеанса. Поставщик задается в элементе providers. Поставщик используется, если только для режима состояния сеанса установлено значение Custom. Дополнительные сведения см. в разделе Режимы состояний сеанса. Этот атрибут не использовался до .NET Framework версии 2.0. Значение по умолчанию — пустая строка (""). |
mode |
Необязательный атрибут элемента SessionStateMode. Указывает, где должны храниться значения состояния сеанса. Дополнительные сведения см. в разделе Режимы состояний сеанса. Атрибутmode может принимать только следующие значения. Значение по умолчанию — InProc.
ЗначениеОписание
Custom Для хранения сведений о состоянии сеанса используется пользовательское хранилище данных.
InProc Состояние сеанса обрабатывается рабочим процессом ASP.NET.
Off Состояние сеанса отключено.
SQLServer Для хранения сведений о состоянии сеанса используется внепроцессная база данных SQL Server.
StateServer Для хранения сведений о состоянии сеанса используется находящаяся вне процесса служба состояний ASP.NET.
|
partitionResolverType |
Необязательный атрибут элемента String. Указывает, где должно храниться состояние сеанса. Если в partitionResolverType задается значение, атрибуты sqlConnectionString и stateConnectionString пропускаются. Строка подключения, возвращаемая свойством PartitionResolverType, используется в каждом запросе для подключения к соответствующему серверу для остальной части запроса. Если строка подключения недопустима, ASP.NET вызывает такое же исключение, что и в ситуации, когда заданная строка подключения к серверу недопустима. Это свойство используется для распределения данных состояния сеанса на нескольких серверах в режиме сервера SQL или сервера состояний. Этот атрибут не использовался до .NET Framework версии 2.0. Значение по умолчанию — пустая строка. |
regenerateExpiredSessionId |
Необязательный атрибут элемента Boolean. Задает, будет ли повторно выдан идентификатор сеанса, если клиент указывает идентификатор сеанса с истекшим сроком действия. По умолчанию идентификаторы сеанса повторно выдаются только в режиме cookieless, если включен параметр regenerateExpiredSessionId. Дополнительные сведения см. в разделе IsCookieless. Этот атрибут не использовался до .NET Framework версии 2.0. Значение по умолчанию — true. |
sessionIDManagerType |
Необязательный атрибут элемента String. Задает полный тип менеджера идентификатора сеанса. Значение по умолчанию — пустая строка. |
sqlCommandTimeout |
Необязательный атрибут элемента TimeSpan. Указывает время ожидания в секундах для команд SQL, использующих режим состояния сеанса SQL Server. Это время ожидания определяет, сколько секунд команда SQL может бездействовать до того, как она будет отменена. Этот атрибут не использовался до .NET Framework версии 2.0. Значение по умолчанию — 0:00:30 (30 секунд). |
sqlConnectionRetryInterval |
Необязательный атрибут элемента TimeSpan. Задает интервал времени в секундах между попытками подключения к базе данных. По умолчанию используется значение 0 секунд. |
sqlConnectionString |
Необязательный атрибут элемента String. Задает строку подключения для компьютера, на котором выполняется SQL Server. Этот атрибут необходим, если для атрибута mode установлено значение SQLServer. Дополнительные сведения см. в разделе Режимы состояний сеанса. Для этого атрибута можно установить именованную строку sqlConnectionString из узла connectionStrings или использовать следующий синтаксис:
Примечание
Для большей безопасности приложения при использовании режима SQLServer используйтеProtected Configuration, чтобы защитить значение sqlConnectionString за счет шифрования раздела конфигурации sessionState.
По умолчанию используется значение "data source=127.0.0.1;Integrated Security=SSPI". |
stateConnectionString |
Необязательный атрибут элемента String. Задает имя сервера или адрес и порт, на котором будет удаленно сохраняться состояние сеанса. Значением порта должно быть 42424. Этот атрибут необходим, если mode имеет значение StateServer. Убедитесь, что на удаленном сервере запущена служба состояний ASP.NET, сохраняющая сведения о состоянии сеанса. Эта служба устанавливается вместе с ASP.NET и по умолчанию располагается в %windir%\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. Дополнительные сведения см. в разделе Режимы состояний сеанса.
Примечание
Для большей безопасности приложения при использовании режима StateServer используйте Protected Configuration, чтобы защитить значение stateConnectionString за счет шифрования раздела конфигурации sessionState.
По умолчанию используется значение "tcpip=127.0.0.1:42424". |
stateNetworkTimeout |
Необязательный атрибут элемента TimeSpan. Указывает время в секундах, в течение которого сетевое подключение TCP/IP между веб-сервером и сервером состояний может быть неактивным до отмены запроса. Этот атрибут используется, если для атрибута mode установлено значение StateServer. Значение по умолчанию — 10 секунд. |
timeout |
Необязательный атрибут элемента TimeSpan. Задает время в минутах, в течение которого сеанс может быть неактивным до его завершения. Для атрибута timeout нельзя установить значение, большее 525 600 минут (1 год) для внутрипроцессного режима и режима сервера состояний. Параметр конфигурации сеанса timeout применяется только к страницам ASP.NET. Изменение значения timeout сеанса не оказывает влияния на время ожидания сеанса для страниц ASP. Аналогично, изменение времени ожидания сеанса для страниц ASP не оказывает влияния на время ожидания сеанса для страниц ASP.NET. Значение по умолчанию — 20 минут. |
useHostingIdentity |
Необязательный атрибут элемента Boolean. Указывает, возвращается ли состояние сеанса к удостоверению основного процесса или используется олицетворение клиента. При значении true ASP.NET подключается к хранилищу состояний сеанса, используя следующие учетные данные.
При значении false ASP.NET подключается к хранилищу состояний сеансов с использованием учетных данных, которые в настоящий момент связаны с потоком операционной системы для текущего запроса. Для олицетворения клиента ASP.NET подключается к хранилищу состояний сеансов с использованием учетных данных безопасности, согласованных с обозревателем. При значении false при подключении к хранилищу состояний сеансов ASP.NET не возвращается к удостоверению процесса или к удостоверению олицетворения приложения. Дополнительные сведения см. в разделе Олицетворение ASP.NET. Этот атрибут не использовался до .NET Framework версии 2.0. Значение по умолчанию — true.
Примечание
В .NET Framework версии 1.1, если для атрибута mode установлено значение SQLServer и действует олицетворение клиента, ASP.NET подключается к компьютеру, на котором выполняется SQL Server, используя учетные данные клиента из олицетворения клиента ASP.NET.
|
Наследуемые атрибуты |
Необязательные атрибуты. Атрибуты, наследуемые всеми элементами раздела. |
Дочерние элементы
Элемент |
Описание |
---|---|
providers |
Содержит коллекцию пользовательских поставщиков хранилища состояний сеанса. |
Родительские элементы
Элемент |
Описание |
---|---|
configuration |
Необходимый корневой элемент любого файла конфигурации, который используется средой CLR и приложениями платформы .NET Framework. |
system.web |
Задает корневой элемент для параметров конфигурации ASP.NET в файле конфигурации и содержит элементы конфигурации для настройки веб-приложений ASP.NET и управления поведением этих приложений. |
Заметки
Элемент <sessionState> настраивает параметры состояния сеанса для текущего приложения.
Когда новый клиент начинает взаимодействовать с веб-приложением, выдается идентификатор сеанса, который связывается со всеми последующими запросами от того же клиента, пока сеанс действителен. Этот идентификатор используется для сохранения состояния на стороне сервера, связанного со всеми запросами сеанса клиента. Элемент <sessionState> контролирует то, как приложение ASP.NET устанавливает и поддерживает эту связь для каждого клиента.
Этот механизм весьма гибок и позволяет, наряду со многими другими возможностями, размещать сведения о состоянии сеанса вне процесса и отслеживать состояние, не используя файлы Cookie.
При пересылке идентификатора сеанса в URI максимальный размер URI может быть превышен. Если общая длина билета анонимного идентификатора, билета подлинности форм, идентификатора сеанса и данных пользователя больше максимально допустимой длины URI, запрос завершится неудачно с ошибкой 400-Bad Request (неверный запрос).
Использование режима StateServer
Убедитесь, что на удаленном сервере, на котором должны храниться сведения о состоянии сеанса, запущена служба состояний ASP.NET.
Эта служба устанавливается вместе с ASP.NET и по умолчанию располагается в %windir%\Microsoft.NET\Framework\версия\aspnet_state.exe.
В файле Web.config для приложения установите mode в "StateServer", а для stateConnectionString задайте значение, например, "tcpip=dataserver:42424".
Использование режима SQLServer
На компьютере, на котором выполняется сервер SQL Server, хранящий состояние сеанса, запустите InstallSqlState.sql.
По умолчанию InstallSqlState.sql находится в папке %windir%\Microsoft.NET\Framework\версия.
При этом будет создана база данных ASPState с новыми хранимыми процедурами и таблицы, а в базе данных TempDB будут созданы таблицы ASPStateTempApplications и ASPStateTempSessions.
В файле Web.config для приложения установите mode в "SQLServer", а для sqlConnectionString задайте значение, например, "data source=localhost;Integrated Security=SSPI;".
Примечание Чтобы выполнить эти шаги, можно использовать Aspnet_regsql.exe.
Сведения о доступе к значениям конфигурации элемента <sessionState> в коде приложения и об изменении этих значений см. в разделах SessionStateSection и System.Web.SessionState.
Настройки по умолчанию
Следующий установленный по умолчанию элемент <sessionState> не задается явно ни в файле Machine.config, ни в корневом файле Web.config. Однако он представляет собой конфигурацию по умолчанию, возвращаемую приложением.
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
stateNetworkTimeout="10"
sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
sqlCommandTimeout="30"
customProvider=""
cookieless="UseCookies"
cookieName="ASP.NET_SessionId"
timeout="20"
allowCustomSqlDatabase="false"
regenerateExpiredSessionId="true"
partitionResolverType=""
useHostingIdentity="true">
<providers>
<clear />
</providers>
</sessionState>
Пример
В следующем примере демонстрируется, как задать параметры конфигурации состояния сеанса.
<sessionState
mode="SQLServer"
cookieless="true"
sqlConnectionString=" Integrated Security=SSPI;data source=MySqlServer;"
sqlCommandTimeout="10" />
Сведения об элементе
Обработчик раздела конфигурации |
|
Член конфигурации |
|
Настраиваемые расположения |
Machine.config Файл Web.config корневого уровня Файл Web.config уровня приложения |
Требования |
Microsoft IIS версии 5.0, 5.1 или 6.0 .NET Framework версии 1.0, 1.1 или 2.0 Microsoft Visual Studio 2003 или Visual Studio 2005 |
См. также
Задачи
Практическое руководство. Настройка отдельных каталогов с помощью параметров расположения
Пошаговое руководство. Отключение параметров конфигурации ASP.NET
Ссылки
Элемент system.web (схема параметров ASP.NET)
Элемент providers для элемента sessionState (схема параметров ASP.NET)
Элемент configuration (схема общих параметров)
Основные понятия
Иерархия и наследование файла конфигурации ASP.NET
Настройка обеспечения безопасности ASP.NET
Другие ресурсы
Шифрование сведений о конфигурации с помощью функции защищенной конфигурации
Общие параметры конфигурации (ASP.NET)
Параметры конфигурации ASP.NET