SessionStateStoreProviderBase.GetItem Método

Definição

Retorna os dados de estado de sessão somente leitura do armazenamento de dados da sessão.

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.

id
String

O SessionID para a solicitação atual.

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.

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.

lockId
Object

Quando este método retorna, ele contém um objeto que é definido como o identificador de bloqueio para a solicitação atual. Para obter detalhes sobre o identificador de bloqueio, consulte "Bloqueio dos dados de repositório de sessão" no resumo da classe SessionStateStoreProviderBase.

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.

Retornos

Um SessionStateStoreData preenchido com valores de sessão e informações do armazenamento de dados da sessão.

Exemplos

Para obter um exemplo de implementação de provedor de repositório de estado de sessão, consulte Implementando um provedor de repositório de Session-State.

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 ReadOnlycomo . Se o EnableSessionState atributo for definido truecomo , o SessionStateModule objeto chamará o GetItemExclusive método .

O GetItem método retorna um SessionStateStoreData objeto preenchido com informações de sessão do armazenamento de dados e atualiza a data de validade dos dados da sessão. Se nenhum dado de item de sessão for encontrado no armazenamento de dados, o GetItem método definirá o lockedout parâmetro false como e retornará null. Isso faz com que o SessionStateModule objeto chame o CreateNewStoreData método para criar um novo item de sessão no armazenamento de dados.

Se os dados de item de sessão forem encontrados no armazenamento de dados, mas os dados estiverem bloqueados, o GetItem método definirá ooutlockedparâmetro truecomo , definirá o lockAgeout parâmetro como a data e hora atuais menos a data e a hora em que o item foi bloqueado (que é recuperado do armazenamento de dados), definirá o lockIdout parâmetro como o identificador de bloqueio recuperado do armazenamento de dados, e retorna 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.

Se o valor que o lockAgeout parâmetro está 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.

O actionFlags parâmetro é usado quando os cookieless atributos e regenerateExpiredSessionId são definidos truecomo . Um actionFlags valor definido como InitializeItem indica que a entrada no armazenamento de dados da sessão é uma nova sessão que requer inicialização. Entradas não inicializadas no armazenamento de dados de sessão são criadas por uma chamada para o CreateUninitializedItem método . Se o item do armazenamento de dados de sessão não for um item não inicializado, o actionFlags parâmetro será definido como zero.

Os implementadores personalizados do repositório de estado de sessão que dão suporte a sessões sem cookie devem definir o actionFlagsout parâmetro como o valor retornado do armazenamento de dados de sessão para o item atual. Se o valor do actionFlags parâmetro para o item de repositório de sessão solicitado for igual ao InitializeItem valor de enumeração, o GetItem método deverá definir o valor no armazenamento de dados como zero depois de definir o actionFlagsout parâmetro.

Aplica-se a

Confira também