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 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
El HttpContext de la solicitud actual.
- locked
- Boolean
Cuando este método devuelve, contiene un valor booleano que se establece en true
si se obtiene correctamente un bloqueo; de lo contrario, false
.
- lockAge
- TimeSpan
Cuando este método devuelve, contiene un objeto TimeSpan 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 SessionStateStoreProviderBase clase.
- actions
- SessionStateActions
Cuando este método devuelve, contiene uno de los valores de SessionStateActions, lo que indica si la sesión actual es una sesión sin inicializar y sin cookies.
Devoluciones
Un SessionStateStoreData rellenado 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 objeto SessionStateModule llama al método GetItemExclusive al principio de una solicitud, durante el evento AcquireRequestState, cuando el atributo EnableSessionState se establece en true
, que es el valor predeterminado. Si el atributo EnableSessionState se establece en ReadOnly
, el objeto SessionStateModule llama al método GetItem.
El método GetItemExclusive devuelve un objeto SessionStateStoreData 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 método GetItemExclusive establece el parámetro locked
out
en false
y devuelve null
. Esto hace que el objeto SessionStateModule llame al método CreateNewStoreData 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 GetItemExclusive establece el parámetro locked
out
en true
, establece el parámetro lockAge
out
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 parámetro lockId
out
en el identificador de bloqueo recuperado del almacén de datos, y devuelve null
. Esto hace que el objeto SessionStateModule llame al método GetItemExclusive 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 que el parámetro lockAge
out
se establece en supera el valor de ExecutionTimeout, el SessionStateModule llama al método ReleaseItemExclusive para borrar el bloqueo en los datos del elemento de sesión y, a continuación, vuelve a llamar al método GetItemExclusive.
El parámetro actionFlags
se usa cuando los atributos cookieless
y regenerateExpiredSessionId
se establecen en true
. Un valor de actionFlags
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 método CreateUninitializedItem. Si el elemento del almacén de datos de sesión no es un elemento inicializado, el parámetro actionFlags
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 actionFlags
out
en el valor devuelto desde el almacén de datos de sesión para el elemento actual. Si el valor del parámetro actionFlags
para el elemento de almacén de sesión solicitado es igual al valor de enumeración InitializeItem, el método GetItemExclusive debe establecer el valor en el almacén de datos en cero después de establecer el parámetro actionFlags
out
.