SessionStateStoreProviderBase.GetItem 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 ^ GetItem(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 GetItem(System.Web.HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out System.Web.SessionState.SessionStateActions actions);
abstract member GetItem : System.Web.HttpContext * string * bool * TimeSpan * obj * SessionStateActions -> System.Web.SessionState.SessionStateStoreData
Public MustOverride Function GetItem (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 anges till true om det begärda sessionsobjektet är låst i sessionsdatalagret, falseannars .
- 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 GetItem metoden i början av en begäran, under AcquireRequestState händelsen, när EnableSessionState attributet är inställt på ReadOnly.
EnableSessionState Om attributet är inställt på trueanropar SessionStateModuleGetItemExclusive objektet i stället metoden.
Metoden GetItem returnerar ett SessionStateStoreData objekt som fylls i med sessionsinformation från datalagret och uppdaterar förfallodatumet för sessionsdata. Om inga sessionsobjektdata hittas i datalagret anger GetItem 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 GetItem 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 GetItem metoden igen efter ett halvsekundersintervall för att försöka hämta informationen om sessionsobjektet.
Om värdet som parametern lockAgeout är inställd på att överskrida ExecutionTimeout värdet anropar SessionStateModuleReleaseItemExclusive objektet metoden för att rensa låset på sessionsobjektdata och anropar GetItem sedan metoden igen.
Parametern actionFlags används när både attributen cookieless och regenerateExpiredSessionId ä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 GetItemInitializeItem bör metoden ange värdet i datalagret till noll när parametern har angettsactionFlagsout.