SessionStateStoreProviderBase.GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) Método
Definição
Retorna os dados de estado de sessão somente leitura do armazenamento de dados da sessão.Returns read-only session-state data from the session data store.
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
O HttpContext para a solicitação atual.The HttpContext for the current request.
- locked
- Boolean
Quando este método retorna, ele contém um valor booliano que é definido como true se o item da sessão solicitado está bloqueado no armazenamento de dados; caso contrário, false.When this method returns, contains a Boolean value that is set to true if the requested session item is locked at the session data store; otherwise, false.
- lockAge
- TimeSpan
Quando este método retorna, ele contém um objeto TimeSpan que é definido como a quantidade de tempo que um item no armazenamento de dados da sessão foi bloqueado.When this method returns, contains a TimeSpan object that is set to the amount of time that an item in the session data store has been locked.
- lockId
- Object
Quando este método retorna, ele contém um objeto que é definido como o identificador de bloqueio para a solicitação atual.When this method returns, contains an object that is set to the lock identifier for the current request. Para obter detalhes sobre o identificador de bloqueio, consulte "Bloqueio dos dados de repositório de sessão" no resumo da classe SessionStateStoreProviderBase.For details on the lock identifier, see "Locking Session-Store Data" in the SessionStateStoreProviderBase class summary.
- actions
- SessionStateActions
Quando este método retorna, contém um dos valores SessionStateActions, indicando se a sessão atual é uma sessão sem cookies não inicializada.When this method returns, contains one of the SessionStateActions values, indicating whether the current session is an uninitialized, cookieless session.
Retornos
Um SessionStateStoreData preenchido com valores de sessão e informações do armazenamento de dados da sessão.A SessionStateStoreData populated with session values and information from the session data store.
Exemplos
Para obter um exemplo de uma implementação de provedor de armazenamento de estado de sessão, consulte implementando um provedor de repositório de Session-State.For an example of a session-state store provider implementation, see Implementing a Session-State Store Provider.
Comentários
O SessionStateModule objeto chama o GetItem método no início de uma solicitação, durante o AcquireRequestState evento, quando o EnableSessionState atributo é definido como ReadOnly .The SessionStateModule object calls the GetItem method at the beginning of a request, during the AcquireRequestState event, when the EnableSessionState attribute is set to ReadOnly. Se o EnableSessionState atributo for definido como true , o SessionStateModule objeto chamará o GetItemExclusive método.If the EnableSessionState attribute is set to true, the SessionStateModule object instead calls the GetItemExclusive method.
O GetItem método retorna um SessionStateStoreData objeto populado com informações de sessão do armazenamento de dados e atualiza a data de validade dos dados da sessão.The GetItem method returns a SessionStateStoreData object populated with session information from the data store and updates the expiration date of the session data. Se nenhum dado de item de sessão for encontrado no armazenamento de dados, o GetItem método definirá o locked out parâmetro como false e retornará null .If no session-item data is found at the data store, the GetItem method sets the locked out parameter to false and returns null. Isso faz com que o SessionStateModule objeto chame o CreateNewStoreData método para criar um novo item de sessão no repositório de dados.This causes the SessionStateModule object to call the CreateNewStoreData method to create a new session item in the data store.
Se os dados do item de sessão forem encontrados no armazenamento de dados, mas os dados estiverem bloqueados, o GetItem método definirá o locked out parâmetro como true , definirá o lockAge out parâmetro como a data e a hora atuais menos a data e a hora em que o item foi bloqueado (que é recuperado do armazenamento de dados), definirá o lockId out parâmetro para o identificador de bloqueio recuperado do armazenamento de dados e retornará null .If session-item data is found at the data store but the data is locked, the GetItem method sets the locked out parameter to true, sets the lockAge out parameter to the current date and time minus the date and time when the item was locked (which is retrieved from the data store), sets the lockId out parameter to the lock identifier retrieved from the data store, and returns null. Isso faz com que o SessionStateModule objeto chame o GetItem método novamente após um intervalo de meio segundo para tentar recuperar as informações do item de sessão.This causes the SessionStateModule object to call the GetItem method again after a half-second interval to attempt to retrieve the session-item information.
Se o valor que o lockAge out parâmetro for definido para exceder o ExecutionTimeout valor, o SessionStateModule objeto chamará o ReleaseItemExclusive método para limpar o bloqueio nos dados do item de sessão e, em seguida, chamará o GetItem método novamente.If the value that the lockAge out parameter is set to exceed the ExecutionTimeout value, then the SessionStateModule object calls the ReleaseItemExclusive method to clear the lock on the session-item data, and then calls the GetItem method again.
O actionFlags parâmetro é usado quando os cookieless atributos e regenerateExpiredSessionId são definidos como true .The actionFlags parameter is used when both the cookieless and regenerateExpiredSessionId attributes are set to true. Um actionFlags valor definido para InitializeItem indicar que a entrada no armazenamento de dados da sessão é uma nova sessão que requer inicialização.An actionFlags value set to InitializeItem indicates that the entry in the session data store is a new session that requires initialization. As entradas não inicializadas no armazenamento de dados da sessão são criadas por uma chamada para o CreateUninitializedItem método.Uninitialized entries in the session data store are created by a call to the CreateUninitializedItem method. Se o item do repositório de dados da sessão não for um item não inicializado, o actionFlags parâmetro será definido como zero.If the item from the session data store is not an uninitialized item, the actionFlags parameter will be set to zero.
Os implementadores de armazenamento de estado de sessão personalizados que dão suporte a sessões sem cookie devem definir o actionFlags out parâmetro para o valor retornado do armazenamento de dados da sessão para o item atual.Custom session-state store implementers that support cookieless sessions should set the actionFlags out parameter to the value returned from the session data store for the current item. Se o actionFlags valor do parâmetro do item de armazenamento de sessão solicitado for igual ao InitializeItem valor de enumeração, o GetItem método deverá definir o valor no repositório de dados como zero depois de definir o actionFlags out parâmetro.If the actionFlags parameter value for the requested session-store item equals the InitializeItem enumeration value, then the GetItem method should set the value in the data store to zero after setting the actionFlags out parameter.