SessionStateStoreProviderBase.GetItemExclusive Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.
- 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.