SessionStateStoreProviderBase.GetItemExclusive 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 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 ^ 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
Objeto HttpContext de la solicitud actual.
- locked
- Boolean
El resultado que devuelve este método contiene un valor booleano establecido en true
si el bloqueo se obtiene correctamente; 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 GetItemExclusive método al principio de una solicitud, durante el AcquireRequestState evento , cuando el EnableSessionState atributo se establece true
en , que es el valor predeterminado. Si el EnableSessionState atributo se establece ReadOnly
en , 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 mientras dure 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 locked
out
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 GetItemExclusiveout
locked
parámetro en , establece el lockAge
out
parámetro true
en 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 lockId
out
parámetro en el identificador de bloqueo recuperado del almacén de datos, y devuelve null
. Esto hace que el SessionStateModule objeto vuelva a llamar al GetItemExclusive método 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 que el lockAge
out
parámetro se establece en supera el ExecutionTimeout valor, SessionStateModule llama 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 true
en . 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 actionFlags
out
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 GetItemExclusive método debe establecer el valor en el almacén de datos en cero después de establecer el actionFlags
out
parámetro .
Se aplica a
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de