SessionStateStoreProviderBase.GetItem Método

Definición

Devuelve datos del estado de sesión de sólo lectura desde el almacén de datos de la 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

Objeto HttpContext de la solicitud actual.

id
String

Objeto SessionID de la solicitud actual.

locked
Boolean

El resultado que devuelve este método contiene un valor booleano establecido en true si el elemento de sesión solicitado está bloqueado en el almacén de datos de sesión; en caso contrario, es false.

lockAge
TimeSpan

El resultado que devuelve este método contiene un objeto TimeSpan, establecido en la cantidad de tiempo que un elemento del almacén de datos de sesión ha estado bloqueado.

lockId
Object

El resultado que devuelve este método contiene un objeto establecido en el identificador de bloqueo de la solicitud actual. Para obtener información detallada acerca del identificador de bloqueo, vea "Bloqueo de datos de almacén de sesiones" en el resumen de la clase SessionStateStoreProviderBase.

actions
SessionStateActions

El resultado que devuelve este método contiene uno de los valores de SessionStateActions, que indica si la sesión actual es una sesión sin inicializar y carente de cookies.

Devoluciones

Objeto SessionStateStoreData que se ha rellenado con los valores de sesión y la 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 método establece el GetItemoutlockedpará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 SessionStateModuleGetItem objeto llame 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 se establece 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 trueen . 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 no inicializadas del 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 sin inicializar, 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 actionFlagsout parámetro en el valor devuelto del almacén de datos de sesión para el elemento actual. Si el actionFlags valor del parámetro para el 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 .

Se aplica a

Consulte también