다음을 통해 공유


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

이 메서드가 반환될 때 현재 세션이 초기화되지 않은 쿠키 없는 세션인지 여부를 나타내는 SessionStateActions 값 중 하나가 포함됩니다.

반환

세션 데이터 저장소의 세션 값 및 정보로 채워진 SessionStateStoreData.

예제

세션 상태 저장소 공급자 구현의 예는 Session-State Store 공급자구현을 참조하세요.

설명

SessionStateModule 개체는 EnableSessionState 특성이 기본값인 true설정된 AcquireRequestState 이벤트 중에 요청 시작 시 GetItemExclusive 메서드를 호출합니다. EnableSessionState 특성이 ReadOnly설정되면 SessionStateModule 개체는 대신 GetItem 메서드를 호출합니다.

GetItemExclusive 메서드는 데이터 저장소의 세션 정보로 채워진 SessionStateStoreData 개체를 반환하고, 저장된 데이터의 만료 날짜를 업데이트하고, 요청 기간 동안 데이터 저장소의 세션 항목 데이터를 잠급니다. 데이터 저장소에 세션 항목 데이터가 없으면 GetItemExclusive 메서드는 lockedout 매개 변수를 false 설정하고 null반환합니다. 이렇게 하면 SessionStateModule 개체가 CreateNewStoreData 메서드를 호출하여 데이터 저장소에 새 세션 항목을 만듭니다. 세션 항목 데이터가 데이터 저장소에 있지만 데이터가 잠겨 있는 경우 GetItemExclusive 메서드는 lockedout 매개 변수를 true설정하고, lockAgeout 매개 변수를 현재 날짜 및 시간으로 설정하고, 항목이 잠긴 날짜와 시간을 뺀 날짜 및 시간(데이터 저장소에서 검색됨)을 뺀 값으로 lockIdout 매개 변수를 데이터 저장소에서 검색된 잠금 식별자에 설정합니다. null반환합니다. 이렇게 하면 SessionStateModule 개체가 세션 항목 정보를 검색하고 데이터에 대한 잠금을 얻기 위해 반초 간격 후에 GetItemExclusive 메서드를 다시 호출합니다. lockAge out 매개 변수가 ExecutionTimeout 값을 초과하도록 설정된 경우 SessionStateModuleReleaseItemExclusive 메서드를 호출하여 세션 항목 데이터에 대한 잠금을 지우고 GetItemExclusive 메서드를 다시 호출합니다.

actionFlags 매개 변수는 cookielessregenerateExpiredSessionId 특성이 모두 true설정되면 사용됩니다. InitializeItem 설정된 actionFlags 값은 세션 데이터 저장소의 항목이 초기화가 필요한 새 세션임을 나타냅니다. 세션 데이터 저장소에서 초기화되지 않은 항목은 CreateUninitializedItem 메서드를 호출하여 생성됩니다. 세션 데이터 저장소의 항목이 초기화되지 않은 항목이 아니면 actionFlags 매개 변수가 0으로 설정됩니다.

쿠키 없는 세션을 지원하는 사용자 지정 세션 상태 저장소 구현자는 actionFlagsout 매개 변수를 현재 항목에 대한 세션 데이터 저장소에서 반환된 값으로 설정해야 합니다. 요청된 세션 저장소 항목에 대한 actionFlags 매개 변수 값이 InitializeItem 열거형 값과 같으면 GetItemExclusive 메서드는 actionFlagsout 매개 변수를 설정한 후 데이터 저장소의 값을 0으로 설정해야 합니다.

적용 대상

추가 정보