SessionStateStoreProviderBase.GetItemExclusive Método

Definición

Devuelve datos de estado de sesión de solo lectura del almacén de datos de sesión.

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

Parámetros

context
HttpContext

para HttpContext la solicitud actual.

id
String

para SessionID la solicitud actual.

locked
Boolean

Cuando este método devuelve , contiene un valor booleano establecido true en si se obtiene correctamente un bloqueo; 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 GetItemExclusive método al principio de una solicitud, durante el AcquireRequestState evento, cuando el EnableSessionState atributo se establece trueen , que es el valor predeterminado. Si el EnableSessionState atributo se establece ReadOnlyen , el SessionStateModule objeto llama al GetItem método en su lugar.

El GetItemExclusive método devuelve un SessionStateStoreData objeto rellenado con información de sesión del almacén de datos, actualiza la fecha de expiración de los datos almacenados y bloquea los datos de elemento de sesión en el almacén de datos durante la solicitud. Si no se encuentra ningún dato de elemento de sesión en el almacén de datos, el GetItemExclusive 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 GetItemExclusive método establece el lockedout parámetro en , establece el truelockAge parámetro outen 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 SessionStateModuleGetItemExclusive 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 y obtener un bloqueo en los datos. Si el valor establecido en el lockAgeout parámetro supera el ExecutionTimeout valor, llama SessionStateModule al ReleaseItemExclusive método para borrar el bloqueo en los datos del elemento de sesión y, a continuación, llama al GetItemExclusive 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 GetItemExclusive 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