SessionStateStoreProviderBase.GetItemExclusive Méthode

Définition

Retourne des données d’état de session en lecture seule à partir du magasin de données de session.

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

Paramètres

context
HttpContext

Pour HttpContext la requête actuelle.

id
String

Pour SessionID la requête actuelle.

locked
Boolean

Lorsque cette méthode retourne, contient une valeur booléenne définie true sur si un verrou est obtenu avec succès ; sinon, false.

lockAge
TimeSpan

Lorsque cette méthode est retournée, contient un TimeSpan objet défini sur la durée pendant laquelle un élément du magasin de données de session a été verrouillé.

lockId
Object

Lorsque cette méthode est retournée, contient un objet défini sur l’identificateur de verrou pour la requête actuelle. Pour plus d’informations sur l’identificateur de verrou, consultez « Verrouillage Session-Store Données » dans le résumé de la SessionStateStoreProviderBase classe.

actions
SessionStateActions

Lorsque cette méthode est retournée, contient l’une SessionStateActions des valeurs, indiquant si la session active est une session sans cookie non initialisée.

Retours

Rempli SessionStateStoreData de valeurs de session et d’informations à partir du magasin de données de session.

Exemples

Pour obtenir un exemple d’implémentation d’un fournisseur de magasin d’état de session, consultez Implémentation d’un fournisseur de magasin Session-State.

Remarques

L’objet SessionStateModule appelle la GetItemExclusive méthode au début d’une requête, pendant l’événement AcquireRequestState , lorsque l’attribut EnableSessionState est défini truesur , qui est la valeur par défaut. Si l’attribut EnableSessionState est défini sur ReadOnly, l’objet SessionStateModule appelle plutôt la GetItem méthode.

La GetItemExclusive méthode retourne un SessionStateStoreData objet rempli d’informations de session à partir du magasin de données, met à jour la date d’expiration des données stockées et verrouille les données d’élément de session dans le magasin de données pendant la durée de la requête. Si aucune donnée d’élément de session n’est trouvée dans le magasin de données, la GetItemExclusive méthode définit le lockedout paramètre sur false et retourne null. Ainsi, l’objet SessionStateModule appelle la CreateNewStoreData méthode pour créer un élément de session dans le magasin de données. Si des données d’élément de session sont trouvées dans le magasin de données, mais que les données sont verrouillées, la GetItemExclusive méthode définit le lockedout paramètre sur , définit le truelockAge paramètre outsur la date et l’heure actuelles moins la date et l’heure à laquelle l’élément a été verrouillé (qui est récupéré à partir du magasin de données), définit le lockIdout paramètre sur l’identificateur de verrou récupéré à partir du magasin de données, et retourne null. Cela entraîne l’appel de la SessionStateModuleGetItemExclusive méthode après un intervalle d’une demi-seconde pour tenter de récupérer les informations de l’élément de session et d’obtenir un verrou sur les données. Si la valeur définie par le lockAgeout paramètre dépasse la ExecutionTimeout valeur, elle SessionStateModule appelle la ReleaseItemExclusive méthode pour effacer le verrou sur les données de l’élément de session, puis appelle à nouveau la GetItemExclusive méthode.

Le actionFlags paramètre est utilisé lorsque les attributs et cookieless les regenerateExpiredSessionId attributs sont tous deux définis truesur . Valeur actionFlags définie pour InitializeItem indiquer que l’entrée dans le magasin de données de session est une nouvelle session qui nécessite l’initialisation. Les entrées non initialisées dans le magasin de données de session sont créées par un appel à la CreateUninitializedItem méthode. Si l’élément du magasin de données de session n’est pas un élément non initialisé, le actionFlags paramètre est défini sur zéro.

Les implémenteurs de magasin d’état de session personnalisés qui prennent en charge les sessions sans cookie doivent définir le paramètre sur la actionFlagsout valeur retournée par le magasin de données de session pour l’élément actif. Si la actionFlags valeur du paramètre de l’élément de magasin de sessions demandé est égale à la InitializeItem valeur d’énumération, la GetItemExclusive méthode doit définir la valeur dans le magasin de données sur zéro après avoir défini le actionFlagsout paramètre.

S’applique à

Voir aussi