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: