SessionStateStoreProviderBase SessionStateStoreProviderBase SessionStateStoreProviderBase SessionStateStoreProviderBase Class

Definição

Define os membros necessários de um provedor de estado de sessão para um armazenamento de dados. Defines the required members of a session-state provider for a data store.

public ref class SessionStateStoreProviderBase abstract : System::Configuration::Provider::ProviderBase
public abstract class SessionStateStoreProviderBase : System.Configuration.Provider.ProviderBase
type SessionStateStoreProviderBase = class
    inherit ProviderBase
Public MustInherit Class SessionStateStoreProviderBase
Inherits ProviderBase
Herança
SessionStateStoreProviderBaseSessionStateStoreProviderBaseSessionStateStoreProviderBaseSessionStateStoreProviderBase

Exemplos

Para obter um exemplo de uma implementação de provedor de armazenamento de estado de sessão, consulte implementando um provedor de estado de sessão Store.For an example of a session-state store provider implementation, see 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.The following code example shows the Web.config file for an ASP.NET application that is configured to use a custom session-state store provider.

<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>  

Comentários

Estado de sessão ASP.NET lê e grava o provedor de repositório de dados de e para um armazenamento de dados usando um estado de sessão da sessão.ASP.NET session state reads and writes session data from and to a data store using a session-state store provider. Um provedor de armazenamento de estado de sessão é uma classe que herda o SessionStateStoreProviderBase classe abstrata e substituições de seus membros com implementações específicas para os dados de armazenam.A session-state store provider is a class that inherits the SessionStateStoreProviderBase abstract class and overrides its members with implementations specific to the data store. 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 armazenamento 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.The session-state store provider is called by the SessionStateModule class during the processing of an ASP.NET page to communicate with the data store for the storage and retrieval of session variables and related session information such as the time-out value.

Dados de sessão dentro de cada aplicativo do ASP.NET são armazenados separadamente para cada SessionID propriedade.Session data within each ASP.NET application is stored separately for each SessionID property. Aplicativos ASP.NET não compartilham dados da sessão.ASP.NET applications do not share session data.

Você pode especificar um personalizado SessionStateStoreProviderBase implementação de um aplicativo ASP.NET, definindo o mode atributo da sessionState elemento de configuração para Custom e o customProvider de atributo para o nome do provedor personalizado, como como mostrado no exemplo deste tópico.You can specify a custom SessionStateStoreProviderBase implementation for an ASP.NET application by setting the mode attribute of the sessionState configuration element to Custom and the customProvider attribute to the name of the custom provider, as shown in the example for this topic.

Dados de Store de sessão de bloqueioLocking Session Store Data

Como os aplicativos ASP.NET são multithread para dar suporte a responder a solicitações simultâneas, é possível que solicitações simultâneas podem tentar acessar as mesmas informações de sessão.Because ASP.NET applications are multithreaded to support responding to concurrent requests, it is possible that concurrent requests might attempt to access the same session information. Considere um cenário onde vários quadros em um conjunto de todos os quadros acessam o mesmo aplicativo.Consider a scenario where multiple frames in a frameset all access the same application. As solicitações separadas para cada quadro no conjunto de quadros podem ser executadas no servidor Web simultaneamente em threads diferentes.The separate requests for each frame in the frameset can be executed on the Web server concurrently on different threads. Se as páginas do ASP.NET para cada fonte de quadro acessar variáveis de estado de sessão, você pode ter vários threads acessando o armazenamento de sessão simultaneamente.If the ASP.NET pages for each frame source access session-state variables, then you could have multiple threads accessing the session store concurrently.

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 bloqueia com exclusividade o item de repositório de sessão para uma determinada sessão durante a execução de uma página ASP.NET.To avoid data collisions at the session store and unexpected session-state behavior, the SessionStateModule and SessionStateStoreProviderBase classes include lock functionality that exclusively locks the session store item for a particular session for the duration of the execution of an ASP.NET page. 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, de forma que uma solicitação para a sessão somente leitura de dados do armazenamento ainda podem acabar aguardando bloqueadas dados a serem liberada.Note that even if the EnableSessionState attribute is marked as ReadOnly, other ASP.NET pages in the same application might be able to write to the session store, so a request for read-only session data from the store might still end up waiting for locked data to be freed.

Um bloqueio é definido em dados de armazenamento de sessão no início da solicitação, na chamada para o GetItemExclusive método.A lock is set on session-store data at the beginning of the request, in the call to the GetItemExclusive method. Quando a solicitação for concluída, o bloqueio será liberado durante a chamada para o SetAndReleaseItemExclusive método.When the request completes, the lock is released during the call to the SetAndReleaseItemExclusive method.

Se o SessionStateModule objeto encontrar dados de sessão bloqueado durante a chamada para o GetItemExclusive ou o GetItem método, ele solicitará novamente os dados da sessão em intervalos de meio segundo até que o bloqueio seja liberado ou a quantidade de tempo que o dados de sessão foi bloqueados excede o valor da ExecutionTimeout propriedade.If the SessionStateModule object encounters locked session data during the call to either the GetItemExclusive or the GetItem method, it will re-request the session data at half-second intervals until either the lock is released or the amount of time that the session data has been locked exceeds the value of the ExecutionTimeout property. Se o tempo limite de execução for excedido, o SessionStateModule objeto chamará o ReleaseItemExclusive método para liberar os dados do armazenamento de sessão e solicitar os dados de armazenamento de sessão no momento.If the execution time out is exceeded, the SessionStateModule object will call the ReleaseItemExclusive method to free the session-store data and request the session-store data at that time.

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 de chamar o SetAndReleaseItemExclusive método para a resposta atual, é foi feita uma tentativa de definir e liberar os dados do armazenamento de estado de sessão que tem já foram liberados e modificados por outra sessão.Because locked session-store data might have been freed by a call to the ReleaseItemExclusive method on a separate thread before the call to the SetAndReleaseItemExclusive method for the current response, an attempt could be made to set and release session-state store data that has already been released and modified by another session. Para evitar essa situação, o GetItem e GetItemExclusive métodos retornam um identificador de bloqueio.To avoid this situation, the GetItem and GetItemExclusive methods return a lock identifier. Esse identificador de bloqueio deve ser incluído com cada solicitação para modificar os dados do armazenamento de sessão bloqueado.This lock identifier must be included with each request to modify locked session-store data. Armazenamento de sessão dados são modificados apenas se o identificador de bloqueio no armazenamento de dados corresponde ao identificador de bloqueio fornecido pelo SessionStateModule.Session-store data is modified only if the lock identifier in the data store matches the lock identifier supplied by the SessionStateModule.

Excluindo dados de Store de sessão expiradaDeleting Expired Session Store Data

Quando o Abandon método é chamado para uma sessão específica, os dados para essa sessão são excluídos do repositório de dados usando o RemoveItem método; caso contrário, os dados permanecerão no armazenamento de dados da sessão para futuras solicitações de servidor para a sessão.When the Abandon method is called for a particular session, the data for that session is deleted from the data store using the RemoveItem method; otherwise, the data will remain in the session data store to server future requests for the session. Cabe ao SessionStateStoreProviderBase implementação para excluir dados de sessão expirada.It is up to the SessionStateStoreProviderBase implementation to delete expired session data.

Construtores

SessionStateStoreProviderBase() SessionStateStoreProviderBase() SessionStateStoreProviderBase() SessionStateStoreProviderBase()

Inicializa uma nova instância da classe SessionStateStoreProviderBase. Initializes a new instance of the SessionStateStoreProviderBase class.

Métodos

CreateNewStoreData(HttpContext, Int32) CreateNewStoreData(HttpContext, Int32) CreateNewStoreData(HttpContext, Int32) CreateNewStoreData(HttpContext, Int32)

Cria um novo objeto SessionStateStoreData a ser usado para a solicitação atual. Creates a new SessionStateStoreData object to be used for the current request.

CreateUninitializedItem(HttpContext, String, Int32) CreateUninitializedItem(HttpContext, String, Int32) CreateUninitializedItem(HttpContext, String, Int32) CreateUninitializedItem(HttpContext, String, Int32)

Adiciona um novo item de estado de sessão para o armazenamento de dados. Adds a new session-state item to the data store.

Dispose() Dispose() Dispose() Dispose()

Libera todos os recursos usados pela implementação SessionStateStoreProviderBase. Releases all resources used by the SessionStateStoreProviderBase implementation.

EndRequest(HttpContext) EndRequest(HttpContext) EndRequest(HttpContext) EndRequest(HttpContext)

Chamado pelo SessionStateModule objeto ao final de uma solicitação. Called by the SessionStateModule object at the end of a request.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se o objeto especificado é igual ao objeto atual. Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serve como a função de hash padrão. Serves as the default hash function.

(Inherited from Object)
GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions)

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.

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

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.

GetType() GetType() GetType() GetType()

Obtém o Type da instância atual. Gets the Type of the current instance.

(Inherited from Object)
Initialize(String, NameValueCollection) Initialize(String, NameValueCollection) Initialize(String, NameValueCollection) Initialize(String, NameValueCollection)

Inicializa o construtor de configuração. Initializes the configuration builder.

(Inherited from ProviderBase)
InitializeRequest(HttpContext) InitializeRequest(HttpContext) InitializeRequest(HttpContext) InitializeRequest(HttpContext)

Chamado pelo objeto SessionStateModule para inicialização por solicitação. Called by the SessionStateModule object for per-request initialization.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Cria uma cópia superficial do Object atual. Creates a shallow copy of the current Object.

(Inherited from Object)
ReleaseItemExclusive(HttpContext, String, Object) ReleaseItemExclusive(HttpContext, String, Object) ReleaseItemExclusive(HttpContext, String, Object) ReleaseItemExclusive(HttpContext, String, Object)

Libera um bloqueio em um item no armazenamento de dados da sessão. Releases a lock on an item in the session data store.

RemoveItem(HttpContext, String, Object, SessionStateStoreData) RemoveItem(HttpContext, String, Object, SessionStateStoreData) RemoveItem(HttpContext, String, Object, SessionStateStoreData) RemoveItem(HttpContext, String, Object, SessionStateStoreData)

Exclui dados de item do armazenamento de dados da sessão. Deletes item data from the session data store.

ResetItemTimeout(HttpContext, String) ResetItemTimeout(HttpContext, String) ResetItemTimeout(HttpContext, String) ResetItemTimeout(HttpContext, String)

Atualiza a data e hora de validade de um item no armazenamento de dados da sessão. Updates the expiration date and time of an item in the session data store.

SetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean) SetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean) SetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean) SetAndReleaseItemExclusive(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. Updates the session-item information in the session-state data store with values from the current request, and clears the lock on the data.

SetItemExpireCallback(SessionStateItemExpireCallback) SetItemExpireCallback(SessionStateItemExpireCallback) SetItemExpireCallback(SessionStateItemExpireCallback) SetItemExpireCallback(SessionStateItemExpireCallback)

Define uma referência para o delegado SessionStateItemExpireCallback para o evento Session_OnEnd definido no arquivo Global.asax. Sets a reference to the SessionStateItemExpireCallback delegate for the Session_OnEnd event defined in the Global.asax file.

ToString() ToString() ToString() ToString()

Retorna uma cadeia de caracteres que representa o objeto atual. Returns a string that represents the current object.

(Inherited from Object)

Propriedades

Description Description Description Description

Obtém uma breve descrição amigável adequada para exibição em ferramentas administrativas ou outras IUs (interfaces do usuário). Gets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs).

(Inherited from ProviderBase)
Name Name Name Name

Obtém o nome amigável usado para referir-se ao provedor durante a configuração. Gets the friendly name used to refer to the provider during configuration.

(Inherited from ProviderBase)

Aplica-se a

Veja também