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


SessionStateStoreProviderBase.GetItem Метод

Определение

Возвращает данные о состоянии сеанса только для чтения из хранилища данных сеанса.

public:
 abstract System::Web::SessionState::SessionStateStoreData ^ GetItem(System::Web::HttpContext ^ context, System::String ^ id, [Runtime::InteropServices::Out] bool % locked, [Runtime::InteropServices::Out] TimeSpan % lockAge, [Runtime::InteropServices::Out] System::Object ^ % lockId, [Runtime::InteropServices::Out] System::Web::SessionState::SessionStateActions % actions);
public abstract System.Web.SessionState.SessionStateStoreData GetItem (System.Web.HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out System.Web.SessionState.SessionStateActions actions);
abstract member GetItem : System.Web.HttpContext * string * bool * TimeSpan * obj * SessionStateActions -> System.Web.SessionState.SessionStateStoreData
Public MustOverride Function GetItem (context As HttpContext, id As String, ByRef locked As Boolean, ByRef lockAge As TimeSpan, ByRef lockId As Object, ByRef actions As SessionStateActions) As SessionStateStoreData

Параметры

context
HttpContext

HttpContext для текущего запроса.

id
String

SessionID для текущего запроса.

locked
Boolean

При возврате этого метода содержит логическое значение, которое имеет значение true, если запрошенный элемент сеанса заблокирован в хранилище данных сеанса; в противном случае false.

lockAge
TimeSpan

Когда этот метод возвращается, содержит объект TimeSpan, установленный на время блокировки элемента в хранилище данных сеанса.

lockId
Object

Когда этот метод возвращается, содержит объект, заданный идентификатором блокировки для текущего запроса. Дополнительные сведения об идентификаторе блокировки см. в разделе "Блокировка Session-Store данные" в сводке по классу SessionStateStoreProviderBase.

actions
SessionStateActions

При возврате этого метода содержит одно из значений SessionStateActions, указывающее, является ли текущий сеанс неинициализированным, без файлов cookie.

Возвращаемое значение

SessionStateStoreData заполнены значениями сеансов и сведениями из хранилища данных сеанса.

Примеры

Пример реализации поставщика хранилища состояний сеанса см. в разделе Реализации поставщика хранилищаSession-State.

Комментарии

Объект SessionStateModule вызывает метод GetItem в начале запроса во время события AcquireRequestState, когда для атрибута EnableSessionState задано значение ReadOnly. Если для атрибута EnableSessionState задано значение true, объект SessionStateModule вместо этого вызывает метод GetItemExclusive.

Метод GetItem возвращает объект SessionStateStoreData, заполненный сведениями о сеансе из хранилища данных, и обновляет дату окончания срока действия данных сеанса. Если в хранилище данных нет данных элемента сеанса, метод GetItem задает параметр lockedoutfalse и возвращает null. Это приводит к тому, что объект SessionStateModule вызывает метод CreateNewStoreData для создания нового элемента сеанса в хранилище данных.

Если данные элемента сеанса найдены в хранилище данных, но данные заблокированы, метод GetItem задает параметру lockedout значение true, задает параметру lockAgeout значение текущей даты и времени минус даты и времени, когда элемент был заблокирован (который извлекается из хранилища данных), задает параметру lockIdout идентификатор блокировки, полученный из хранилища данных, и возвращает null. Это приводит к тому, что объект SessionStateModule снова вызывает метод GetItem после половины секунды, чтобы попытаться получить сведения о элементе сеанса.

Если для параметра lockAgeout задано значение ExecutionTimeout, объект SessionStateModule вызывает метод ReleaseItemExclusive, чтобы очистить блокировку данных элемента сеанса, а затем снова вызывает метод GetItem.

Параметр actionFlags используется, если для атрибутов cookieless и regenerateExpiredSessionId задано значение true. Значение actionFlags, равное InitializeItem указывает, что запись в хранилище данных сеанса является новым сеансом, требующим инициализации. Неинициализированные записи в хранилище данных сеанса создаются вызовом метода CreateUninitializedItem. Если элемент из хранилища данных сеанса не является неинициализированным элементом, параметр actionFlags будет иметь значение нулю.

Пользовательские средства хранения состояний сеансов, поддерживающие сеансы без файлов cookie, должны задать параметр actionFlagsout значением, возвращаемым из хранилища данных сеанса для текущего элемента. Если значение параметра actionFlags для запрошенного элемента хранилища сеансов равно значению перечисления InitializeItem, метод GetItem должен задать значение в хранилище данных равным нулю после задания параметра actionFlagsout.

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

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

  • Обзор состояния сеанса ASP.NET