SessionStateStoreProviderBase.GetItem Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve datos de estado de sesión de solo lectura del almacén de datos de sesión.
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
Parámetros
- context
- HttpContext
para HttpContext la solicitud actual.
- locked
- Boolean
Cuando este método devuelve , contiene un valor booleano establecido true en si el elemento de sesión solicitado está bloqueado en el almacén de datos de sesión; de lo contrario, false.
- lockAge
- TimeSpan
Cuando este método vuelve, contiene un TimeSpan objeto que se establece en la cantidad de tiempo que se ha bloqueado un elemento del almacén de datos de sesión.
- lockId
- Object
Cuando este método devuelve, contiene un objeto que se establece en el identificador de bloqueo de la solicitud actual. Para obtener más información sobre el identificador de bloqueo, vea "Bloquear Session-Store datos" en el resumen de la SessionStateStoreProviderBase clase.
- actions
- SessionStateActions
Cuando este método vuelve, contiene uno de los SessionStateActions valores , que indica si la sesión actual es una sesión sin inicializar y sin cookies.
Devoluciones
Rellenado SessionStateStoreData con valores de sesión e información del almacén de datos de sesión.
Ejemplos
Para obtener un ejemplo de una implementación del proveedor de almacén de estado de sesión, consulte Implementación de un proveedor de almacén de Session-State.
Comentarios
El SessionStateModule objeto llama al GetItem método al principio de una solicitud, durante el AcquireRequestState evento , cuando el EnableSessionState atributo se establece ReadOnlyen . Si el EnableSessionState atributo se establece trueen , el SessionStateModule objeto llama al GetItemExclusive método en su lugar.
El GetItem método devuelve un SessionStateStoreData objeto rellenado con información de sesión del almacén de datos y actualiza la fecha de expiración de los datos de sesión. Si no se encuentra ningún dato de elemento de sesión en el almacén de datos, el GetItem método establece el lockedout parámetro false en y devuelve null. Esto hace que el SessionStateModule objeto llame al CreateNewStoreData método para crear un nuevo elemento de sesión en el almacén de datos.
Si los datos de elemento de sesión se encuentran en el almacén de datos, pero los datos están bloqueados, el GetItem método establece el lockedout parámetro en , establece el lockAgeout parámetro trueen la fecha y hora actuales menos la fecha y hora en que se bloqueó el elemento (que se recupera del almacén de datos), establece el lockIdout parámetro en el identificador de bloqueo recuperado del almacén de datos, y devuelve null. Esto hace que el SessionStateModule objeto llame GetItem al método de nuevo después de un intervalo de medio segundo para intentar recuperar la información del elemento de sesión.
Si el valor que el lockAgeout parámetro está establecido para superar el ExecutionTimeout valor, el SessionStateModule objeto llama al ReleaseItemExclusive método para borrar el bloqueo en los datos del elemento de sesión y, a continuación, llama al GetItem método de nuevo.
El actionFlags parámetro se usa cuando los cookieless atributos y regenerateExpiredSessionId se establecen en true. Un actionFlags valor establecido en InitializeItem indica que la entrada en el almacén de datos de sesión es una nueva sesión que requiere inicialización. Las entradas sin inicializar en el almacén de datos de sesión se crean mediante una llamada al CreateUninitializedItem método . Si el elemento del almacén de datos de sesión no es un elemento inicializado, el actionFlags parámetro se establecerá en cero.
Los implementadores de almacén de estado de sesión personalizados que admiten sesiones sin cookies deben establecer el parámetro en actionFlagsout el valor devuelto desde el almacén de datos de sesión para el elemento actual. Si el actionFlags valor del parámetro del elemento de almacén de sesión solicitado es igual al InitializeItem valor de enumeración, el GetItem método debe establecer el valor en el almacén de datos en cero después de establecer el actionFlagsout parámetro .