SessionStateStoreProviderBase.GetItemExclusive Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce dati di stato sessione di sola lettura 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
HttpContext per la richiesta corrente.
- locked
- Boolean
Quando termina, questo metodo contiene un valore booleano impostato su true
se un blocco viene ottenuto correttamente; in caso contrario, false
.
- lockAge
- TimeSpan
Quando termina, questo metodo contiene un oggetto TimeSpan impostato sulla quantità di tempo in cui un elemento nell'archivio dati della sessione è stato 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 Session-Store" nel riepilogo della classe SessionStateStoreProviderBase.
- actions
- SessionStateActions
Quando termina, questo metodo contiene uno dei valori SessionStateActions, che indica se la sessione corrente è una sessione non inizializzata senza cookie.
Restituisce
Un SessionStateStoreData popolato con valori di sessione e informazioni dall'archivio dati della sessione.
Esempio
Per un esempio di implementazione del provider dell'archivio stati sessione, vedere Implementazione di un provider di archiviazione Session-State.
Commenti
L'oggetto SessionStateModule chiama il metodo GetItemExclusive all'inizio di una richiesta, durante l'evento AcquireRequestState, quando l'attributo EnableSessionState è impostato su true
, ovvero l'impostazione predefinita. Se l'attributo EnableSessionState è impostato su ReadOnly
, l'oggetto SessionStateModule chiama invece il metodo GetItem.
Il metodo GetItemExclusive restituisce un oggetto SessionStateStoreData popolato con informazioni sulla sessione dall'archivio dati, aggiorna la data di scadenza dei dati archiviati e blocca i dati dell'elemento di sessione nell'archivio dati per la durata della richiesta. Se nell'archivio dati non vengono trovati dati degli elementi di sessione, il metodo GetItemExclusive imposta il parametro locked
out
su false
e restituisce null
. In questo modo, l'oggetto SessionStateModule chiama il metodo CreateNewStoreData per creare un nuovo elemento di sessione nell'archivio dati. Se i dati dell'elemento di sessione vengono trovati nell'archivio dati ma i dati sono bloccati, il metodo GetItemExclusive imposta il parametro locked
out
su true
, imposta il parametro lockAge
out
sulla data e sull'ora correnti meno la data e l'ora in cui l'elemento è stato bloccato (che viene recuperato dall'archivio dati), imposta il parametro lockId
out
sull'identificatore di blocco recuperato dall'archivio dati, e restituisce null
. In questo modo, l'oggetto SessionStateModule chiama nuovamente il metodo GetItemExclusive dopo un intervallo di mezzo secondo per tentare di recuperare le informazioni sull'elemento sessione e ottenere un blocco sui dati. Se il valore impostato dal parametro lockAge
out
supera il valore ExecutionTimeout, il SessionStateModule chiama il metodo ReleaseItemExclusive per cancellare il blocco sui dati dell'elemento sessione e quindi chiama nuovamente il metodo GetItemExclusive.
Il parametro actionFlags
viene usato quando gli attributi cookieless
e regenerateExpiredSessionId
sono entrambi impostati su true
. Un valore actionFlags
impostato su InitializeItem indica che la voce nell'archivio dati della sessione è una nuova sessione che richiede l'inizializzazione. Le voci non inizializzate nell'archivio dati della sessione vengono create da una chiamata al metodo CreateUninitializedItem. Se l'elemento dall'archivio dati della sessione non è un elemento non inizializzato, il parametro actionFlags
verrà impostato su zero.
Gli implementatori personalizzati dell'archivio dello stato sessione che supportano sessioni senza cookie devono impostare il parametro actionFlags
out
sul valore restituito dall'archivio dati della sessione per l'elemento corrente. Se il valore del parametro actionFlags
per l'elemento dell'archivio sessioni richiesto è uguale al valore di enumerazione InitializeItem, il metodo GetItemExclusive deve impostare il valore nell'archivio dati su zero dopo aver impostato il parametro actionFlags
out
.