Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe SessionStateStoreProviderBase

 
System_CAPS_noteObservação

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Define os membros necessários de um provedor de estado de sessão para um armazenamento de dados.

Namespace:   System.Web.SessionState
Assembly:  System.Web (em System.Web.dll)

System.Object
  System.Configuration.Provider.ProviderBase
    System.Web.SessionState.SessionStateStoreProviderBase

public abstract class SessionStateStoreProviderBase : ProviderBase

NomeDescrição
System_CAPS_protmethodSessionStateStoreProviderBase()

Inicializa uma nova instância da classe SessionStateStoreProviderBase.

NomeDescrição
System_CAPS_pubpropertyDescription

Obtém uma breve descrição amigável adequado para exibição em Ferramentas administrativas ou outras interfaces de usuário (UIs).(Herdado de ProviderBase.)

System_CAPS_pubpropertyName

Obtém o nome amigável usado para referir-se ao provedor durante a configuração.(Herdado de ProviderBase.)

NomeDescrição
System_CAPS_pubmethodCreateNewStoreData(HttpContext, Int32)

Cria um novo SessionStateStoreData objeto a ser usado para a solicitação atual.

System_CAPS_pubmethodCreateUninitializedItem(HttpContext, String, Int32)

Adiciona um novo item de estado da sessão para o repositório de dados.

System_CAPS_pubmethodDispose()

Libera todos os recursos usados pelo SessionStateStoreProviderBase implementação.

System_CAPS_pubmethodEndRequest(HttpContext)

Chamado pelo SessionStateModule objeto ao final de uma solicitação.

System_CAPS_pubmethodEquals(Object)

Determina se o objeto especificado é igual ao objeto atual.(Herdado de Object.)

System_CAPS_protmethodFinalize()

Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes de ser recuperado pela coleta de lixo.(Herdado de Object.)

System_CAPS_pubmethodGetHashCode()

Serve como a função de hash padrão.(Herdado de Object.)

System_CAPS_pubmethodGetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions)

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

System_CAPS_pubmethodGetItemExclusive(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions)

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

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethodInitialize(String, NameValueCollection)

Inicializa o construtor de configuração.(Herdado de ProviderBase.)

System_CAPS_pubmethodInitializeRequest(HttpContext)

Chamado pelo objeto SessionStateModule para inicialização por solicitação.

System_CAPS_protmethodMemberwiseClone()

Cria uma cópia superficial do Object atual.(Herdado de Object.)

System_CAPS_pubmethodReleaseItemExclusive(HttpContext, String, Object)

Repositório de um bloqueio em um item nos dados de sessão de versões.

System_CAPS_pubmethodRemoveItem(HttpContext, String, Object, SessionStateStoreData)

Exclusões de item de dados de armazenamento de dados da sessão.

System_CAPS_pubmethodResetItemTimeout(HttpContext, String)

Atualiza a data de expiração e a hora de um item no armazenamento de dados.

System_CAPS_pubmethodSetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean)

Atualiza as informações do item de sessão no armazenamento de dados do estado de sessão com valores da solicitação atual e limpa o bloqueio nos dados.

System_CAPS_pubmethodSetItemExpireCallback(SessionStateItemExpireCallback)

Define uma referência o SessionStateItemExpireCallback delegar o Session_OnEnd evento definido no arquivo global asax.

System_CAPS_pubmethodToString()

Retorna uma cadeia de caracteres que representa o objeto atual.(Herdado de Object.)

Estado da sessão ASP.NET lê e grava o provedor de repositório de dados da sessão de e para um repositório de dados usando um estado de sessão. Um provedor de armazenamento de estado de sessão é uma classe que herda de SessionStateStoreProviderBase classe abstrata e substituições armazenam seus membros com implementações específicas para os dados. O provedor de armazenamento de estado de sessão é chamado pelo SessionStateModule classe durante o processamento de uma página ASP.NET para se comunicar com o repositório de dados para o armazenamento e recuperação de variáveis de sessão e informações de sessão relacionado como o valor de tempo limite.

Dados de sessão em cada aplicativo do ASP.NET são armazenados separadamente para cada SessionID propriedade. Aplicativos ASP.NET não compartilham dados da sessão.

Você pode especificar um SessionStateStoreProviderBase implementação de um aplicativo ASP.NET, definindo o mode atributo do sessionState elemento de configuração para Custom e o customProvider atributo para o nome do provedor personalizado, como mostrado no exemplo deste tópico.

Como os aplicativos ASP.NET são multithread para dar suporte ao responder a solicitações simultâneas, é possível que solicitações simultâneas podem tentar acessar as mesmas informações de sessão. Considere um cenário onde vários quadros em um conjunto de todos os quadros acessem o mesmo aplicativo. As solicitações separadas para cada quadro no conjunto de quadros podem ser executadas no servidor Web simultaneamente em threads diferentes. Se as páginas ASP.NET para cada fonte de quadro acessam variáveis de estado de sessão, você pode ter vários threads acessando o armazenamento de sessão simultaneamente.

Para evitar colisões de dados no armazenamento de sessão e comportamento inesperado de estado de sessão, o SessionStateModule e SessionStateStoreProviderBase classes incluem a funcionalidade de bloqueio que exclusivamente bloqueia o item de armazenamento de sessão para uma determinada sessão durante a execução de uma página ASP.NET. Observe que mesmo se o EnableSessionState atributo está marcado como ReadOnly, outras páginas ASP.NET no mesmo aplicativo podem ser capazes de gravar para o armazenamento de sessão para uma solicitação de sessão somente de leitura dados do repositório ainda podem acabar aguardando dados bloqueados ser liberados.

Um bloqueio é definido em dados de armazenamento de sessão no início da solicitação, na chamada para o GetItemExclusive método. Quando a solicitação for concluída, o bloqueio será liberado durante a chamada para o SetAndReleaseItemExclusive método.

Se o SessionStateModule objeto encontrar dados de sessão bloqueados durante a chamada para o GetItemExclusive ou GetItem método, ele solicitará novamente os dados da sessão em intervalos de meio segundo até que o bloqueio seja liberado ou o período de tempo que os dados da sessão foi bloqueados excede o valor da ExecutionTimeout propriedade. Se o tempo limite de execução for excedido, o SessionStateModule objeto chamará o ReleaseItemExclusive método para liberar os dados de armazenamento de sessão e solicitar os dados de armazenamento de sessão no momento.

Porque o armazenamento de sessão bloqueados dados podem ter sido liberados por uma chamada para o ReleaseItemExclusive método em um thread separado antes da chamada para o SetAndReleaseItemExclusive método para a resposta atual, é foi feita uma tentativa de definir e liberar os dados de armazenamento de estado de sessão que já foram liberados e modificados por outra sessão. Para evitar essa situação, o GetItem e GetItemExclusive métodos retornam um identificador de bloqueio. Esse identificador de bloqueio deve ser incluído com cada solicitação para modificar os dados de armazenamento de sessão bloqueados. Armazenamento de sessão de dados são modificados apenas se o identificador de bloqueio no repositório de dados corresponde ao identificador de bloqueio fornecido pelo SessionStateModule.

Quando o Abandon método é chamado para uma sessão específica, os dados para essa sessão são excluídos do armazenamento usando o RemoveItem método; caso contrário, os dados permanecem no armazenamento de dados para solicitações futuras de servidor para a sessão. Ele é até o SessionStateStoreProviderBase implementação para excluir dados de sessão expirada.

Para obter um exemplo de uma implementação de provedor de armazenamento de estado de sessão, consulte Implementing a Session-State Store Provider.

O exemplo de código a seguir mostra o arquivo Web. config para um aplicativo ASP.NET que está configurado para usar um provedor de armazenamento de estado de sessão personalizado.

<configuration>
  <connectionStrings>
    <add name="OdbcSessionServices" connectionString="DSN=SessionState;" />
  </connectionStrings>

  <system.web>
    <sessionState 
      mode="Custom"
      customProvider="OdbcSessionProvider">
      <providers>
        <add name="OdbcSessionProvider"
             type="Samples.AspNet.Session.OdbcSessionStateStore"
             connectionStringName="OdbcSessionServices" />
      </providers>
    </sessionState>
  </system.web>
</configuration>

.NET Framework
Disponível desde 2.0

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Retornar ao início
Mostrar: