Comparteix a través de


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

El HttpContext de la solicitud actual.

id
String

El SessionID 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 lockedout 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 lockedout en true, establece el parámetro lockAgeout 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 lockIdout 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 lockAgeout 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 actionFlagsout 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 actionFlagsout.

Se aplica a

Consulte también