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

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

actions
SessionStateActions

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

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

Объект SessionStateStoreData, заполненный значениями сеанса и данными из хранилища данных сеанса.

Примеры

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

Комментарии

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

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

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

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

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

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

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

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