HttpSessionState.IsCookieless Свойство

Определение

Возвращает значение, позволяющее определить, был ли идентификатор сеанса внедрен в URL-адрес или сохранен в HTTP-файле Cookie.

public:
 property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean

Значение свойства

Boolean

Если сеанс был внедрен в URL-адрес, значение true, если нет, значение false.

Примеры

В следующем примере кода атрибут сеанса cookieless задается значение true в файле Web.config.

<configuration>
  <system.web>
    <sessionState
      mode="InProc"
      cookieless="true"
      regenerateExpiredSessionId="true"
      timeout="30" />
  </system.web>
</configuration>

Комментарии

ASP.NET однозначно определяет сеансы с каждым браузером. По умолчанию уникальный идентификатор сеанса хранится в файле cookie сеанса без истечения срока действия в браузере. Можно указать, что идентификаторы сеанса не хранятся в файле cookie, задав cookieless атрибут true в элементе конфигурации sessionState .

Примечание

Чтобы повысить безопасность приложения, приложение должно разрешить пользователям выйти из системы, в этот момент он должен вызвать Abandon метод. Это снижает вероятность нежелательного источника с помощью уникального идентификатора в URL-адресе для получения частных данных, хранящихся в сеансе для пользователя.

ASP.NET поддерживает состояние сеанса без файлов cookie, автоматически вставляя уникальный идентификатор сеанса в URL-адрес страницы. Например, следующий URL-адрес был изменен ASP.NET для включения уникального идентификатора сеанса lit3py55t21z5v5vlm25s55:

http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx

ASP.NET изменяет ссылки, содержащиеся на всех запрошенных страницах, путем внедрения значения идентификатора сеанса в ссылки непосредственно перед отправкой каждой страницы в браузер. Состояние сеанса сохраняется до тех пор, пока пользователь следует пути ссылок, которые предоставляет сайт. Однако если агент пользователя перезаписывает URL-адрес, экземпляр состояния сеанса будет потерян.

Идентификатор сеанса внедряется в URL-адрес после косой черты, следующей за именем приложения, и перед любым оставшимся файлом или идентификатором виртуального каталога. Это позволяет ASP.NET разрешить имя приложения перед участием SessionStateModule в запросе.

По умолчанию идентификаторы сеансов, используемые в сеансах без файлов cookie, перезапускаются. То есть, если запрос выполняется с идентификатором сеанса, срок действия которого истек, новый сеанс запускается с использованием идентификатора сеанса, предоставленного запросом. Такое поведение может привести к нежелательному совместному использованию данных сеанса, если ссылка, содержащая идентификатор сеанса без файлов cookie, предоставляется нескольким браузерам, возможно, через поисковую систему или другую программу. Вы можете уменьшить вероятность совместного использования данных сеанса несколькими клиентами, отключив перезапуск идентификаторов сеансов. Для этого задайте regenerateExpiredSessionId для атрибута элемента конфигурации sessionState значение true. Это приведет к созданию нового идентификатора сеанса при выполнении запроса сеанса без файлов cookie с идентификатором сеанса с истекшим сроком действия. Обратите внимание, что если запрос с идентификатором сеанса с истекшим сроком действия использует метод HTTPPOST, все опубликованные данные будут потеряны, regenerateExpiredSessionId trueтак как ASP.NET выполняет перенаправление, чтобы убедиться, что в браузере есть новый идентификатор сеанса в URL-адресе.

Примечание

Если задать regenerateExpiredSessionId атрибут для true снижения возможности нежелательного совместного использования данных сеанса, он не защищает от нежелательного источника, получающего доступ к сеансу другого пользователя, получив значение и включив SessionID его в запросы к серверу. Если вы храните частную или конфиденциальную информацию в состоянии сеанса, рекомендуется использовать SSL для шифрования обмена данными между браузером и сервером, который включает в SessionIDсебя .

Применяется к

См. также раздел