SessionStateStoreProviderBase.GetItemExclusive Metod

Definition

Returnerar skrivskyddade sessionstillståndsdata från sessionsdatalagret.

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

Parametrar

context
HttpContext

För HttpContext den aktuella begäran.

id
String

För SessionID den aktuella begäran.

locked
Boolean

När den här metoden returnerar innehåller ett booleskt värde som är inställt på true om ett lås har hämtats. Annars false.

lockAge
TimeSpan

När den här metoden returnerar innehåller ett TimeSpan objekt som är inställt på hur lång tid ett objekt i sessionsdatalagret har låsts.

lockId
Object

När den här metoden returneras innehåller ett objekt som är inställt på låsidentifieraren för den aktuella begäran. Mer information om låsidentifieraren finns i "Låsa Session-Store data" i klasssammanfattningen SessionStateStoreProviderBase .

actions
SessionStateActions

När den här metoden returnerar innehåller ett av SessionStateActions värdena, som anger om den aktuella sessionen är en icke-initierad, cookielös session.

Returer

Ett SessionStateStoreData fyllt med sessionsvärden och information från sessionsdatalagret.

Exempel

Ett exempel på en implementering av en sessionstillståndslagerprovider finns i Implementera en Session-State Store-provider.

Kommentarer

Objektet SessionStateModule anropar GetItemExclusive metoden i början av en begäran, under AcquireRequestState händelsen, när EnableSessionState attributet är inställt på true, vilket är standardvärdet. EnableSessionState Om attributet är inställt på ReadOnlyanropar SessionStateModuleGetItem objektet i stället metoden.

Metoden GetItemExclusive returnerar ett SessionStateStoreData objekt som fylls med sessionsinformation från datalagret, uppdaterar förfallodatumet för lagrade data och låser sessionsobjektdata i datalagret under hela begäran. Om inga sessionsobjektdata hittas i datalagret anger GetItemExclusive metoden parametern lockedout till false och returnerar null. Detta gör SessionStateModule att objektet anropar CreateNewStoreData metoden för att skapa ett nytt sessionsobjekt i datalagret. Om sessionsobjektdata hittas i datalagret men data är låsta anger GetItemExclusive metoden parametern lockedout till true, anger lockAgeout parametern till aktuellt datum och tid minus datum och tid när objektet låstes (som hämtas från datalagret), anger lockIdout parametern till låsidentifieraren som hämtats från datalagret. och returnerar null. Detta gör SessionStateModule att objektet anropar GetItemExclusive metoden igen efter ett halvt sekunders intervall för att försöka hämta sessionsobjektsinformationen och få ett lås på data. Om värdet som parametern lockAgeout är inställd på överskrider värdet ExecutionTimeout anropar SessionStateModuleReleaseItemExclusive metoden för att rensa låset på sessionsobjektdata och anropar GetItemExclusive sedan metoden igen.

Parametern actionFlags används när attributen cookieless och regenerateExpiredSessionId båda är inställda på true. Ett actionFlags värde som anges till InitializeItem anger att posten i sessionsdatalagret är en ny session som kräver initiering. Uninitialiserade poster i sessionsdatalagret skapas genom ett anrop till CreateUninitializedItem metoden. Om objektet från sessionsdatalagret inte är ett onitialiserat objekt anges parametern actionFlags till noll.

Anpassade sessionstillståndslager implementerare som stöder cookielösa sessioner bör ange parametern actionFlagsout till det värde som returneras från sessionsdatalagret för det aktuella objektet. actionFlags Om parametervärdet för det begärda objektet session-store är lika med uppräkningsvärdet InitializeItemGetItemExclusive bör metoden ange värdet i datalagret till noll när parametern har angettsactionFlagsout.

Gäller för

Se även