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
При возврате этим методом содержит объект, значение которого равно идентификатору блокировки для текущего запроса. Дополнительные данные об идентификаторе блокировки см. в разделе "Блокирование данных в хранилище сеанса" в кратком обзоре класса 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
параметру будет присвоено значение 0.
Пользовательские средства реализации хранилища состояний сеансов, поддерживающие сеансы без файлов cookie, должны задать actionFlags
out
для параметра значение, возвращаемое из хранилища данных сеанса для текущего элемента. actionFlags
Если значение параметра для запрошенного элемента хранилища сеансов равно значению InitializeItem перечисления, то GetItemExclusive метод должен задать значение в хранилище данных равным нулю после установки actionFlags
out
параметра.
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по