Condividi tramite


SessionStateStoreProviderBase.GetItemExclusive Metodo

Definizione

Restituisce dati di sola lettura relativi allo stato sessione dall'archivio dati della sessione.

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

Parametri

context
HttpContext

Oggetto HttpContext per la richiesta corrente.

id
String

Oggetto SessionID per la richiesta corrente.

locked
Boolean

Quando termina, questo metodo contiene un valore booleano impostato su true se è stato ottenuto un blocco, altrimenti contiene il valore false.

lockAge
TimeSpan

Quando termina, questo metodo contiene un oggetto TimeSpan impostato sull'intervallo di tempo durante il quale un elemento dell'archivio dati della sessione risulta bloccato.

lockId
Object

Quando termina, questo metodo contiene un oggetto impostato sull'identificatore di blocco per la richiesta corrente. Per informazioni dettagliate sull'identificatore di blocco, vedere "Blocco dei dati dell'archivio di sessione" nel riepilogo della classe SessionStateStoreProviderBase.

actions
SessionStateActions

Quando termina, questo metodo contiene uno dei valori dell'oggetto SessionStateActions che indica se la sessione corrente è una sessione senza cookie non inizializzata.

Restituisce

Oggetto SessionStateStoreData nel quale vengono inseriti i valori e le informazioni sulla sessione contenuti nell'archivio dati della sessione.

Esempio

Per un esempio di implementazione del provider di archiviazione con stato sessione, vedere Implementazione di un provider di archiviazione Session-State.

Commenti

L'oggetto SessionStateModule chiama il GetItemExclusive metodo all'inizio di una richiesta, durante l'evento AcquireRequestState , quando l'attributo EnableSessionState è impostato su true, ovvero il valore predefinito. Se l'attributo è impostato su ReadOnly, l'oggetto EnableSessionStateSessionStateModule chiama invece il GetItem metodo .

Il GetItemExclusive metodo restituisce un SessionStateStoreData oggetto popolato con informazioni sulla sessione dall'archivio dati, aggiorna la data di scadenza dei dati archiviati e blocca i dati dell'elemento sessione nell'archivio dati per la durata della richiesta. Se non vengono trovati dati dell'elemento sessione nell'archivio dati, il GetItemExclusive metodo imposta il lockedout parametro su false e restituisce null. In questo modo l'oggetto chiama il SessionStateModuleCreateNewStoreData metodo per creare un nuovo elemento di sessione nell'archivio dati. Se i dati degli elementi di sessione vengono trovati nell'archivio dati, ma i dati vengono bloccati, il GetItemExclusive metodo imposta il parametro su true, imposta il lockAgeoutoutlockedparametro sulla data e sull'ora corrente meno la data e l'ora in cui l'elemento è stato bloccato (che viene recuperato dall'archivio dati), imposta il lockIdout parametro sull'identificatore di blocco recuperato dall'archivio dati, e restituisce null. In questo modo l'oggetto chiama nuovamente il GetItemExclusive metodo dopo un intervallo di metà secondo per tentare di recuperare le informazioni sull'elemento SessionStateModule sessione e ottenere un blocco sui dati. Se il lockAgeout valore impostato sul parametro supera ExecutionTimeout il valore, SessionStateModule il metodo chiama il ReleaseItemExclusive metodo per cancellare il blocco sui dati dell'elemento sessione e quindi chiama di nuovo il GetItemExclusive metodo.

Il actionFlags parametro viene usato quando gli cookieless attributi e regenerateExpiredSessionId sono entrambi impostati su true. Un actionFlags valore impostato su InitializeItem indica che la voce nell'archivio dati sessione è una nuova sessione che richiede l'inizializzazione. Le voci non inizializzate nell'archivio CreateUninitializedItem dati sessione vengono create da una chiamata al metodo . Se l'elemento dall'archivio dati sessione non è un elemento non inizializzato, il actionFlags parametro verrà impostato su zero.

Gli implementer dello stato sessione personalizzati che supportano le sessioni senza cookie devono impostare il actionFlagsout parametro sul valore restituito dall'archivio dati della sessione per l'elemento corrente. Se il actionFlags valore del parametro per l'elemento dell'archivio sessioni richiesto è uguale InitializeItem al valore di enumerazione, il GetItemExclusive metodo deve impostare il valore nell'archivio dati su zero dopo l'impostazione del actionFlagsout parametro.

Si applica a

Vedi anche