SessionStateStoreProviderBase.GetItemExclusive Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna os dados de estado de sessão somente leitura do armazenamento de dados da sessão.
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
O HttpContext para a solicitação atual.
- locked
- Boolean
Quando esse método é retornado, contém um valor booliano que é definido como true
se um bloqueio é obtido com êxito; 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 um 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 GetItemExclusive método no início de uma solicitação, durante o AcquireRequestState evento, quando o EnableSessionState atributo é definido como true
, que é o padrão. Se o EnableSessionState atributo for definido como ReadOnly
, o SessionStateModule objeto chamará o GetItem método .
O GetItemExclusive método retorna um SessionStateStoreData objeto preenchido com informações de sessão do armazenamento de dados, atualiza a data de validade dos dados armazenados e bloqueia os dados de item de sessão no armazenamento de dados durante a solicitação. Se nenhum dado de item de sessão for encontrado no armazenamento de dados, o GetItemExclusive método definirá o locked
out
parâmetro como false
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 GetItemExclusive método definirá oout
locked
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), define o lockId
out
parâmetro como o identificador de bloqueio recuperado do armazenamento de dados, e retorna null
. Isso faz com que o SessionStateModule objeto chame o GetItemExclusive método novamente após um intervalo de meio segundo para tentar recuperar as informações de item de sessão e obter um bloqueio nos dados. Se o valor definido como o lockAge
out
parâmetro exceder o ExecutionTimeout valor, o chamará o SessionStateModuleReleaseItemExclusive método para limpar o bloqueio nos dados do item de sessão e, em seguida, chamará o GetItemExclusive método novamente.
O actionFlags
parâmetro é usado quando os cookieless
atributos e regenerateExpiredSessionId
são definidos como true
. Um actionFlags
valor definido como InitializeItem indica que a entrada no armazenamento de dados de 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 actionFlags
out
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 GetItemExclusive método deverá definir o valor no armazenamento de dados como zero depois de definir o actionFlags
out
parâmetro.
Aplica-se a
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de