Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Конфигурирует состояния сеанса для веб-приложения.
Синтаксис
class SessionStateSection : ConfigurationSectionWithCollection
Методы
В следующей таблице перечислены методы, предоставляемые классом SessionStateSection
.
Имя | Описание |
---|---|
Добавление | (Наследуется от ConfigurationSectionWithCollection.) |
Очистить | (Является наследником ConfigurationSectionWithCollection ) |
Get | (Является наследником ConfigurationSectionWithCollection ) |
GetAllowDefinition | (Наследуется от ConfigurationSection.) |
GetAllowLocation | (Является наследником ConfigurationSection ) |
Удалить | (Является наследником ConfigurationSectionWithCollection ) |
RevertToParent | (Является наследником ConfigurationSection ) |
SetAllowDefinition | (Является наследником ConfigurationSection ) |
SetAllowLocation | (Является наследником ConfigurationSection ) |
Свойства
В следующей таблице перечислены свойства, предоставляемые классом SessionStateSection
.
Имя | Описание |
---|---|
AllowCustomSqlDatabase |
Значение для чтения и записи boolean . true Значение , если пользователю разрешено указывать начальное значение каталога в свойстве SqlConnectionString ; в противном случае — значение false . Значение по умолчанию — false . |
Cookieless |
Значение для чтения и записи sint32 , которое настраивает использование файлов cookie для идентификации сеансов клиента. Возможные значения перечислены далее в разделе Примечания. Примечание: Существует два способа сохранения состояния сеанса, который связывает клиент с сеансом сервера: путем хранения файла cookie HTTP на клиенте или путем кодирования идентификатора сеанса в URL-адресе. Хранение идентификатора сеанса в файле cookie является более безопасным, но для поддержки файлов cookie требуется клиентский браузер. Для приложений, которые разрешают клиенты, которые не поддерживают файлы cookie, например различные мобильные устройства, идентификатор сеанса может храниться в URL-адресе. Параметр URL-адреса имеет несколько недостатков. Для этого требуется, чтобы ссылки на сайте были относительными и чтобы страница была перенаправлена в начале сеанса с новыми значениями строки запроса. Он также предоставляет идентификатор сеанса в строке запроса, где его можно использовать при атаке безопасности. Режим без файлов cookie следует использовать только в том случае, если требуется поддержка клиентов, которым не хватает поддержки файлов cookie. |
CookieName |
Значение для чтения и записи string , указывающее имя файла cookie HTTP, используемого для идентификации сеанса. Значение по умолчанию — "ASP.NET_SessionId". |
CustomProvider |
Значение для чтения и записи string , указывающее имя настраиваемого поставщика из Providers свойства , используемого, когда свойству Mode присвоено значение Custom . |
Location |
(Наследуется от ConfigurationSection .) Свойство ключа. |
Mode |
Значение для чтения и записи sint32 , указывающее место для хранения состояния сеанса. Возможные значения перечислены далее в разделе Примечания. Примечание: Свойство Mode не является обязательным и может быть унаследовано от более высокого уровня в иерархии конфигурации или от значения по умолчанию. Однако обработчик конфигурации всегда записывает режим на основе текущего наследуемого значения для раздела. |
PartitionResolverType |
Значение для чтения и записи string , содержащее полное имя типа сопоставителя, которое секционирует данные состояния сеанса между несколькими внутренними узлами, если свойству Mode присвоено значение SQLServer или StateServer . Примечание: Если это свойство указано, SqlConnectionString свойства и StateConnectionString игнорируются. Строка подключения, возвращаемая , PartitionResolverType будет использоваться при каждом запросе для подключения к соответствующему расположению сервера для оставшейся части запроса. Если строка подключения недопустимая, ASP.NET вызовет то же исключение, что и при недопустимом настроенной строке подключения к серверу. |
Path |
(Наследуется от ConfigurationSection .) Свойство ключа. |
Providers |
Значение ProviderSettings , содержащее имя и тип поставщиков, выполняющих службы, связанные с состоянием сеанса. |
RegenerateExpiredSessionId |
Значение для чтения и записи boolean . true Значение , если идентификатор сеанса повторно создается при указании клиентом идентификатора сеанса с истекшим сроком действия; в противном случае — false . Значение по умолчанию — false . Примечание: По умолчанию при включении этого свойства повторно отправляются только URL-адреса без файлов cookie. |
SectionInformation |
(Является наследником ConfigurationSection ) |
SessionIDManagerType |
Значение для чтения и записи string , указывающее полный тип диспетчера идентификаторов сеансов. |
SqlCommandTimeout |
Значение для чтения и записиdatetime , указывающее время ожидания для команд SQL, использующих режим SQL Server состояния сеанса. По умолчанию это 30 секунд. |
SqlConnectionString |
Значение для чтения и записиstring , содержащее строку подключения к SQL Server. Значение по умолчанию — "data source=localhost;Integrated Security=SSPI". Это свойство является обязательным, если свойству Mode присвоено значение SQLServer . |
StateConnectionString |
Значение для чтения и записи string , указывающее имя сервера и порт при удаленном хранении состояния сеанса. Значение по умолчанию — "tcpip=loopback:42424". Это свойство является обязательным, если свойству Mode присвоено значение StateServer . Примечание: Убедитесь, что служба состояния ASP.NET запущена на удаленном сервере, на котором хранятся сведения о состоянии сеанса. Эта служба устанавливается вместе с ASP.NET и находится по умолчанию по адресу [drive:]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. По умолчанию эта служба настроена для запуска вручную. Необходимо изменить режим запуска на Автоматический. |
StateNetworkTimeout |
Значение для чтения и записи datetime , указывающее время (в секундах), в течение которого сетевое подключение между веб-сервером и сервером состояния может оставаться бездействующим до завершения сеанса. Это свойство является обязательным, если свойству Mode присвоено значение StateServer . Значение по умолчанию — 10 секунд. |
Timeout |
Значение для чтения и записи datetime , указывающее время (в минутах), по истечении которого сеанс истечет из-за бездействия. Значение по умолчанию — 20 минут. Примечание: Нельзя задать Timeout для свойства значение больше 525 601 минут (1 год). |
UseHostingIdentity |
Значение для чтения и записи boolean . true Значение , если проверка подлинности Windows и удостоверение хост-процесса (ASP.NET или удостоверение службы Windows) включены для удаленных подключений; значение , false если состояние сеанса использует олицетворение клиента, если оно доступно. Значение по умолчанию — true . Примечание: Этот параметр упрощает управление интегрированными проверка подлинности Windows, предоставляя доступ к базе данных только к ASP.NET рабочему процессу или удостоверению приложения, а не ко всему домену или набору пользователей домена. |
используются подклассы ;
Этот класс не содержит подклассов.
Комментарии
Когда новый клиент начинает взаимодействовать с веб-приложением, выдается идентификатор сеанса, который связывается со всеми последующими запросами от того же клиента во время действия сеанса. Этот идентификатор используется для поддержания состояния на стороне сервера, связанного с сеансом клиента в разных запросах. Класс SessionStateSection
управляет тем, как приложение ASP.NET устанавливает и поддерживает эту связь от имени каждого клиента.
В следующей таблице перечислены возможные значения свойства Cookieless
. Значение по умолчанию — 1 (UseCookies
).
Значение | Ключевое слово | Описание |
---|---|---|
0 | UseUri |
Идентификатор сеанса внедряется в качестве строки запроса в запрос универсального кода ресурса (URI), а URI перенаправляется на первоначально запрошенный URL-адрес. Измененный запрос URI используется в течение сеанса, поэтому файл cookie не требуется. Примечание: При использовании UseUri режима необходимо присвоить свойству RegenerateExpiredSessionId значение true . Это позволяет веб-серверу истечь срок действия и повторно создать маркеры, что дает потенциальному злоумышленнику меньше времени для записи файла cookie и получения доступа к содержимому веб-сервера. Также следует рассмотреть возможность изменения Timeout свойства на значение меньше 20-минутного значения по умолчанию. |
1 | UseCookies |
Идентификатор сеанса хранится в файле cookie HTTP на клиенте в течение времени подключения пользователя к веб-сайту. Файлы cookie передаются в http-заголовках всех запросов между клиентом и веб-сервером и более эффективны при отслеживании состояния сеанса, так как они не требуют перенаправления. Кроме того, они сохраняют состояние, если пользователь покидает сайт, чтобы посетить другой, а затем возвращается на исходный сайт. Примечание: Рекомендуется изменить Timeout значение свойства на меньшее, чем 20-минутное значение по умолчанию, чтобы у потенциального злоумышленника было меньше времени для записи файла cookie и получения доступа к содержимому веб-сайта. |
2 | AutoDetect |
Идентификатор сеанса хранится в файле cookie HTTP на клиенте только после подтверждения с браузером проверки того, что файл cookie может быть сохранен. Примечание: При использовании AutoDetect режима необходимо присвоить свойству RegenerateExpiredSessionId значение true . Это позволяет веб-серверу истечь срок действия и повторно создать маркеры, что дает потенциальному злоумышленнику меньше времени для записи файла cookie и получения доступа к содержимому веб-сервера. Также следует рассмотреть возможность изменения Timeout свойства на значение меньше 20-минутного значения по умолчанию. |
3 | UseDeviceProfile |
Идентификатор сеанса хранится в файле cookie HTTP на клиенте, если профиль клиентского устройства поддерживает файлы cookie; в противном случае файлы cookie не используются. Если профиль устройства поддерживает файлы cookie, они будут использоваться, даже если пользователь отключил поддержку файлов cookie. Используйте этот параметр, чтобы гарантировать, что идентификаторы без файлов cookie будут использоваться только с клиентами, которым они требуются (например, в мобильных браузерах). Примечание: При использовании UseDeviceProfile режима необходимо присвоить свойству RegenerateExpiredSessionId значение true . Это позволяет веб-серверу истечь срок действия и повторно создать маркеры, что дает потенциальному злоумышленнику меньше времени для записи файла cookie и получения доступа к содержимому веб-сервера. Также следует рассмотреть возможность изменения Timeout свойства на значение меньше 20-минутного значения по умолчанию. |
В следующей таблице перечислены возможные Mode
значения для свойства . Значение по умолчанию — 1 (InProc
).
Значение | Ключевое слово | Описание |
---|---|---|
0 | Off |
Состояние сеанса отключено. |
1 | InProc |
Состояние сеанса сохраняется для приложения ASP.NET в рабочем процессе, где выполняется приложение. Состояние сеанса в процессе — это самый быстрый встроенный режим хранения состояния. Однако при хранении большего объема данных в сеансе вы потребляете больше памяти веб-сервера, что может снизить производительность. Данные о состоянии сеанса внутри процесса теряются, если рабочий процесс перезапускается. Если ASP.NET приложениям необходимо сохранять данные о состоянии сеанса, а скорость доступа к данным не является основной проблемой, рассмотрите возможность использования внепроцессного режима состояния сеанса для хранения данных. Внутрипроцессное состояние сеанса нельзя использовать в веб-ферме без схемы сопоставления идентификаторов сеансов, которая гарантирует, что все запросы с заданным идентификатором сеанса будут направляться на один и тот же веб-сервер. Примечание: Для работы внутрипроцессного состояния сеанса должна быть запущена служба состояния ASP.NET (Aspnet_state.exe). Эта служба устанавливается вместе с ASP.NET и находится по умолчанию в [drive:]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. По умолчанию эта служба настроена для запуска вручную. Необходимо изменить режим запуска на Автоматический. |
2 | StateServer |
Для хранения сведений о состоянии сеанса используется внепроцессная служба ASP.NET состояний. Преимущество этой конфигурации заключается в том, что состояние сеанса сохраняется при перезапуске рабочего процесса приложения. При использовании этого параметра необходимо указать строку подключения в свойстве StateConnectionString . |
3 | SQLServer |
Состояние сеанса использует внепроцессную базу данных SQL Server для хранения сведений о состоянии. Преимущество этой конфигурации заключается в том, что состояние сеанса сохраняется при перезапуске рабочего процесса приложения или при отключении службы состояния ASP.NET или веб-сервера. При использовании этого параметра необходимо указать строку подключения в свойстве SqlConnectionString . Примечание: Чтобы использовать режим состояния сеанса SQLServe r, необходимо запустить скрипт SQL InstallSqlState.sql (который устанавливается в [диск:]\WINDOWS\Microsoft.NET\Framework\VersionNumber в рамках установки по умолчанию платформа .NET Framework) на компьютере, на котором выполняется SQL Server, на котором будет храниться состояние сеанса. При этом создается база данных с именем ASPState с новыми хранимыми процедурами и новые таблицы ASPStateTempApplications и ASPStateTempSessions в базе данных TempDB. |
4 | Custom |
Состояние сеанса использует пользовательское хранилище данных для хранения сведений о состоянии сеанса. При использовании этого параметра необходимо указать имя настраиваемого поставщика в свойстве CustomProvider . |
Иерархия наследования
ConfigurationSectionWithCollection
SessionStateSection
Требования
Тип | Описание |
---|---|
клиент | — IIS 7.0 в Windows Vista — IIS 7.5 в Windows 7 — IIS 8.0 в Windows 8 — IIS 10.0 в Windows 10 |
Сервер | — IIS 7.0 в Windows Server 2008 — IIS 7.5 в Windows Server 2008 R2 — IIS 8.0 в Windows Server 2012 — IIS 8.5 в Windows Server 2012 R2 — IIS 10.0 в Windows Server 2016 |
Продукт | — IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 |
MOF-файл | WebAdministration.mof |
См. также:
System.Web.Configuration.SystemWebSectionGroup.SessionState
Класс System.Web.SessionState.SessionStateModeConfigurationSectionWithCollection
Класс ProviderSettings
Быстрое, масштабируемое и безопасное управление состоянием сеанса для веб-приложений