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

id
String

現在の要求の SessionID

locked
Boolean

このメソッドから制御が戻るときに、ロックが正常に取得された場合に true に設定されるブール値が格納されます。それ以外の場合は false

lockAge
TimeSpan

このメソッドから制御が戻るときに、セッション データ ストア内の項目がロックされている時間に設定された TimeSpan オブジェクトが格納されます。

lockId
Object

このメソッドから制御が戻るときに、現在の要求のロック識別子に設定されたオブジェクトが格納されます。 ロック識別子の詳細については、 SessionStateStoreProviderBase クラスの概要の「Session-Store データのロック」を参照してください。

actions
SessionStateActions

このメソッドから制御が戻るときに、現在のセッションが初期化されていない Cookie レス セッションであるかどうかを示す、 SessionStateActions 値のいずれかが含まれます。

返品

セッション値とセッション データ ストアからの情報が設定された SessionStateStoreData

セッション状態ストア プロバイダーの実装の例については、「 Session-State ストア プロバイダーの実装」を参照してください。

注釈

SessionStateModule オブジェクトは、GetItemExclusive属性が既定の AcquireRequestState に設定されている場合、EnableSessionState イベント中に、要求の開始時にtrue メソッドを呼び出します。 EnableSessionState属性が ReadOnly に設定されている場合、SessionStateModule オブジェクトは代わりに GetItem メソッドを呼び出します。

GetItemExclusive メソッドは、データ ストアからセッション情報が入力されたSessionStateStoreData オブジェクトを返し、格納されているデータの有効期限を更新し、要求の期間中、データ ストアのセッション項目データをロックします。 データ ストアでセッション項目データが見つからない場合、 GetItemExclusive メソッドは、 lockedout パラメーターを false に設定し、 nullを返します。 これにより、 SessionStateModule オブジェクトは CreateNewStoreData メソッドを呼び出して、データ ストアに新しいセッション項目を作成します。 データ ストアでセッション項目データが見つかったが、データがロックされている場合、 GetItemExclusive メソッドは、 lockedout パラメーターを true に設定し、 lockAgeout パラメーターを現在の日付と時刻からアイテムがロックされた日時 (データ ストアから取得) を差し引いた値に設定し、 lockIdout パラメーターをデータ ストアから取得したロック識別子に設定します。 nullを返します。 これにより、 SessionStateModule オブジェクトは、セッション項目情報の取得とデータのロックの取得を試行する 5 分間隔後に、 GetItemExclusive メソッドを再度呼び出します。 lockAge out パラメーターが設定されている値がExecutionTimeout値を超える場合、SessionStateModuleReleaseItemExclusive メソッドを呼び出してセッション項目データのロックをクリアしてから、GetItemExclusive メソッドをもう一度呼び出します。

actionFlags パラメーターは、cookieless属性とregenerateExpiredSessionId属性の両方がtrueに設定されている場合に使用されます。 actionFlagsに設定されたInitializeItem値は、セッション データ ストア内のエントリが初期化を必要とする新しいセッションであることを示します。 セッション データ ストア内の初期化されていないエントリは、 CreateUninitializedItem メソッドの呼び出しによって作成されます。 セッション データ ストアの項目が初期化されていない項目でない場合、 actionFlags パラメーターは 0 に設定されます。

Cookie レス セッションをサポートするカスタム セッション状態ストア実装者は、 actionFlagsout パラメーターを、現在の項目のセッション データ ストアから返される値に設定する必要があります。 要求されたセッション ストア項目の actionFlags パラメーター値が InitializeItem 列挙値と等しい場合、 GetItemExclusive メソッドは、 actionFlagsout パラメーターを設定した後、データ ストアの値を 0 に設定する必要があります。

適用対象

こちらもご覧ください