Missing pt-br Resource: TableOfContents_Title File: TableOfContents.xml



Introdução


Uma aplicação Web trabalha diferente de uma Desktop. Em aplicações Web um cliente faz uma requisição a uma página,o servidor realiza o processamento da solicitação e devolve o resultado para o cliente (requisitante), isso sob um protocolo sem armazenamento de estado, denominado HTTP.  Isso quer dizer que a requisição HTTP atual não precisa da requisição anterior (caso exista) para dar continuidade. Cada requisição HTTP é independente da outra.  Por vezes é necessário guardar informações temporárias no servidor, a fim de que quando o cliente   fizer  novamente a conexão com o servidor possamos descobrir quem é este requisitante.

A cada nova requisição o ASP.NET cria um novo objeto Session, que se torna parte do contexto e fica disponível em qualquer página, no contexto desta requisição. O ASP.NET cria um identificador e o reconstitui quando chega uma nova solicitação contendo um identificador de sessão válido. Esse identificador pode ser um Cookie por exemplo.
O objeto Session é um dicionário de chave-valor. Você pode atribuir a ele qualquer objeto com uma chave, assim seu objeto estará na próxima requisição que chegar e você recuperará seu objeto com o nome da chave que criou. Criando uma sessão forma simples:

1.Context.Session["MinhaSessao"] = "Este Texto Será Adicionado na Sessão";
 
                    Recuperando a sessão
1.string TextoSessao = (string)Session["MinhaSessao"];

       

Armazenamento



O ASP.NET oferece várias opções de gerenciamento de sessão:
  • Não utilizar:  Quando ele é desabilitado sua aplicação aumenta desempenho por que não precisa carregar o estado de sessão toda vez que a página é carregada. Neste modo você não pode associar um dado de usuário a uma página.
  • IN PROC: Esta é a opção padrão. A sessão será gerenciada no mesmo processo da página. Muito rápido, esse modo fica em memória do servidor, mas se o IIS ou o servidor  forem reiniciados você perderá a sessão. Este modo você não poderá usar em servidores com WebFarm.
  • Servidor de Estado: Neste modo o  ASP.NET direciona  o gerenciamento de sessão para um processo Windows Service separado em uma máquina. Este modo você pode utilizar em servidores WebFarm. Tem como desvantagem a necessidade de estabelecer trafico de rede com o servidor de estado.
  • Sessão SQL SERVER:  Neste modo o ASP.NET usa um banco de dados SQL SERVER para armazenar a sessão. Este modo é seguro por que se o servidor pode ser reiniciado sem que se perca a sessão no retorno da requisição. As informações ficam armazenadas em tabelas de um banco de dados no SQL SERVER.