SessionStateStoreProviderBase.GetItemExclusive Methode

Definitie

Retourneert alleen-lezen sessiestatusgegevens uit het sessiegegevensarchief.

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

Parameters

context
HttpContext

De HttpContext voor de huidige aanvraag.

id
String

De SessionID voor de huidige aanvraag.

locked
Boolean

Wanneer deze methode retourneert, bevat een Booleaanse waarde die is ingesteld true op als een vergrendeling is verkregen; falseanders.

lockAge
TimeSpan

Wanneer deze methode wordt geretourneerd, bevat dit een TimeSpan object dat is ingesteld op de tijdsduur dat een item in het sessiegegevensarchief is vergrendeld.

lockId
Object

Wanneer deze methode wordt geretourneerd, bevat dit een object dat is ingesteld op de vergrendelings-id voor de huidige aanvraag. Zie 'Locking Session-Store Data' in de klassesamenvatting voor meer informatie over de SessionStateStoreProviderBase vergrendelings-id.

actions
SessionStateActions

Wanneer deze methode wordt geretourneerd, bevat een van de SessionStateActions waarden die aangeven of de huidige sessie een niet-geïnitialiseerde, cookieloze sessie is.

Retouren

Een SessionStateStoreData gevuld met sessiewaarden en informatie uit het sessiegegevensarchief.

Voorbeelden

Zie Een Session-State Store-provider implementeren voor een voorbeeld van een implementatie van een provider voor sessiestatusopslag.

Opmerkingen

Het SessionStateModule object roept de GetItemExclusive methode aan aan het begin van een aanvraag, tijdens de AcquireRequestState gebeurtenis, wanneer het EnableSessionState kenmerk is ingesteld op true, wat de standaardwaarde is. Als het EnableSessionState kenmerk is ingesteld op ReadOnly, roept het SessionStateModule object in plaats daarvan de GetItem methode aan.

De GetItemExclusive methode retourneert een SessionStateStoreData object dat is gevuld met sessiegegevens uit het gegevensarchief, werkt de vervaldatum van de opgeslagen gegevens bij en vergrendelt de sessie-itemgegevens in het gegevensarchief voor de duur van de aanvraag. Als er geen sessie-itemgegevens worden gevonden in het gegevensarchief, stelt de GetItemExclusive methode de lockedout parameter false in op en retourneert nulldeze. Dit zorgt ervoor dat het SessionStateModule object de CreateNewStoreData methode aanroept om een nieuw sessie-item te maken in het gegevensarchief. Als sessie-itemgegevens worden gevonden in het gegevensarchief, maar de gegevens zijn vergrendeld, stelt de GetItemExclusive methode de lockedout parameter in op , stelt de truelockAge parameter outin op de huidige datum en tijd minus de datum en tijd waarop het item is vergrendeld (die wordt opgehaald uit het gegevensarchief), stelt de lockIdout parameter in op de vergrendelings-id die is opgehaald uit het gegevensarchief, en retourneert null. Dit zorgt ervoor dat het SessionStateModule object de GetItemExclusive methode na een interval van een halve seconde opnieuw aanroept om de sessie-itemgegevens op te halen en een vergrendeling op de gegevens te verkrijgen. Als de waarde die door de lockAgeout parameter is ingesteld, de ExecutionTimeout waarde overschrijdt, roept de SessionStateModule methode aan ReleaseItemExclusive om de vergrendeling van de sessie-itemgegevens te wissen en roept de GetItemExclusive methode opnieuw aan.

De actionFlags parameter wordt gebruikt wanneer de cookieless en regenerateExpiredSessionId kenmerken beide zijn ingesteld op true. Een actionFlags waarde die aangeeft InitializeItem dat de vermelding in het sessiegegevensarchief een nieuwe sessie is waarvoor initialisatie is vereist. Niet-geïnitialiseerde vermeldingen in het sessiegegevensarchief worden gemaakt door een aanroep naar de CreateUninitializedItem methode. Als het item uit het sessiegegevensarchief geen niet-geïnitialiseerd item is, wordt de actionFlags parameter ingesteld op nul.

Implementers voor aangepaste sessiestatusopslag die ondersteuning bieden voor cookieloze sessies, moeten de actionFlagsout parameter instellen op de waarde die wordt geretourneerd vanuit het sessiegegevensarchief voor het huidige item. Als de actionFlags parameterwaarde voor het aangevraagde sessiearchiefitem gelijk is aan de InitializeItem opsommingswaarde, moet de GetItemExclusive methode de waarde in het gegevensarchief instellen op nul na het instellen van de actionFlagsout parameter.

Van toepassing op

Zie ook