SessionStateStoreProviderBase.GetItemExclusive Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает данные о состоянии сеанса только для чтения из хранилища данных сеанса.
public:
abstract System::Web::SessionState::SessionStateStoreData ^ GetItemExclusive(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 GetItemExclusive (System.Web.HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out System.Web.SessionState.SessionStateActions actions);
abstract member GetItemExclusive : System.Web.HttpContext * string * bool * TimeSpan * obj * SessionStateActions -> System.Web.SessionState.SessionStateStoreData
Public MustOverride Function GetItemExclusive (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 для текущего запроса.
- locked
- Boolean
При возврате этого метода содержит логическое значение, которое имеет значение true
, если блокировка успешно получена; в противном случае false
.
- lockAge
- TimeSpan
Когда этот метод возвращается, содержит объект TimeSpan, установленный на время блокировки элемента в хранилище данных сеанса.
- lockId
- Object
Когда этот метод возвращается, содержит объект, заданный идентификатором блокировки для текущего запроса. Дополнительные сведения об идентификаторе блокировки см. в разделе "Блокировка Session-Store данные" в сводке по классу SessionStateStoreProviderBase.
- actions
- SessionStateActions
При возврате этого метода содержит одно из значений SessionStateActions, указывающее, является ли текущий сеанс неинициализированным, без файлов cookie.
Возвращаемое значение
SessionStateStoreData заполнены значениями сеансов и сведениями из хранилища данных сеанса.
Примеры
Пример реализации поставщика хранилища состояний сеанса см. в разделе Реализации поставщика хранилищаSession-State.
Комментарии
Объект SessionStateModule вызывает метод GetItemExclusive в начале запроса во время события AcquireRequestState, когда для атрибута EnableSessionState задано значение true
, которое является значением по умолчанию. Если для атрибута EnableSessionState задано значение ReadOnly
, объект SessionStateModule вместо этого вызывает метод GetItem.
Метод GetItemExclusive возвращает объект SessionStateStoreData, заполненный сведениями о сеансе из хранилища данных, обновляет дату окончания срока действия сохраненных данных и блокирует данные элемента сеанса в хранилище данных в течение длительности запроса. Если в хранилище данных нет данных элемента сеанса, метод GetItemExclusive задает параметр locked
out
false
и возвращает null
. Это приводит к тому, что объект SessionStateModule вызывает метод CreateNewStoreData для создания нового элемента сеанса в хранилище данных. Если данные элемента сеанса найдены в хранилище данных, но данные заблокированы, метод GetItemExclusive задает параметру locked
out
значение true
, задает параметру lockAge
out
значение текущей даты и времени минус даты и времени, когда элемент был заблокирован (который извлекается из хранилища данных), задает параметру lockId
out
идентификатор блокировки, полученный из хранилища данных, и возвращает null
. Это приводит к тому, что объект SessionStateModule снова вызывает метод GetItemExclusive после половины секунды, чтобы попытаться получить сведения о элементе сеанса и получить блокировку данных. Если для параметра lockAge
out
задано значение ExecutionTimeout, SessionStateModule вызывает метод ReleaseItemExclusive, чтобы очистить блокировку данных элемента сеанса, а затем снова вызывает метод GetItemExclusive.
Параметр actionFlags
используется, если атрибуты cookieless
и regenerateExpiredSessionId
имеют значение true
. Значение actionFlags
, равное InitializeItem указывает, что запись в хранилище данных сеанса является новым сеансом, требующим инициализации. Неинициализированные записи в хранилище данных сеанса создаются вызовом метода CreateUninitializedItem. Если элемент из хранилища данных сеанса не является неинициализированным элементом, параметр actionFlags
будет иметь значение нулю.
Пользовательские средства хранения состояний сеансов, поддерживающие сеансы без файлов cookie, должны задать параметр actionFlags
out
значением, возвращаемым из хранилища данных сеанса для текущего элемента. Если значение параметра actionFlags
для запрошенного элемента хранилища сеансов равно значению перечисления InitializeItem, метод GetItemExclusive должен задать значение в хранилище данных равным нулю после задания параметра actionFlags
out
.
Применяется к
См. также раздел
- Обзор состояния сеанса
ASP.NET