Um objeto Session armazena informações sobre, ou alterar as configurações para uma sessão de usuário.
O objeto Session
Quando você está trabalhando com um aplicativo em seu computador, você abri-lo, fazer algumas mudanças e, em seguida, fechá-lo. Isto é muito parecido com um Session. O computador sabe quem você é. Ele sabe quando você abre o aplicativo e quando você fechá-lo. No entanto, na internet há um problema: o servidor web não sabe quem você é eo que você faz, porque o endereço HTTP não manter o estado.
ASP resolve este problema criando um cookie exclusivo para cada usuário. O cookie é enviado para o computador do usuário e contém informações que identificam o usuário. Esta interface é chamado o objeto de sessão.
O objeto Session armazena informações sobre, ou alterar as configurações para uma sessão de usuário.
Variáveis armazenadas em um objeto informações seguro uma sessão de cerca de um único usuário, e estão disponíveis para todas as páginas em um único aplicativo. informações comuns armazenados em variáveis de sessão são nome, ID e preferências. O servidor cria um novo objeto de sessão para cada novo usuário, e destrói o objeto da sessão quando a sessão expirar.
Quando faz um Iniciar Sessão?
Uma sessão começa quando:
- Um novo usuário solicita um arquivo ASP eo arquivo Global.asa inclui um procedimento Session_OnStart
- Um valor é armazenado em uma variável de sessão
- Um usuário solicita um arquivo ASP eo arquivo Global.asa usa o <object> tag para instanciar um objeto com escopo de sessão
Quando é que a sessão final?
A sessão termina se um usuário não solicitou ou atualizada uma página na aplicação por um período determinado. Por padrão, este é de 20 minutos.
Se você quiser definir um intervalo de tempo limite que é mais curto ou mais longo do que o padrão, use o Timeout propriedade.
O exemplo a seguir define um intervalo de tempo limite de 5 minutos:
<%
Session.Timeout=5
%>
Use o Abandon método para terminar uma sessão imediatamente:
<%
Session.Abandon
%>
Note: O principal problema com sessões é quando deve terminar. Não sabemos se a última solicitação do usuário foi a final ou não. Então, nós não sabemos quanto tempo devemos manter a sessão "alive" . Esperar muito tempo para uma sessão ociosa consome recursos no servidor, mas se a sessão é eliminada muito cedo o usuário tem que começar tudo de novo, porque o servidor tenha excluído todas as informações. Encontrar o intervalo de tempo limite direito pode ser difícil!
Tip: guarde Apenas pequenas quantidades de dados em variáveis de sessão!
Armazenar e recuperar variáveis de sessão
A coisa mais importante sobre o objeto de sessão é que você pode armazenar variáveis nela.
O exemplo a seguir irá definir a variável de sessão username para "Donald Duck" ea variável Session age para "50" :
<%
Session("username")="Donald Duck"
Session("age")=50
%>
Quando o valor é armazenado em uma variável de sessão pode ser alcançado a partir de qualquer página no aplicativo ASP:
Welcome <%Response.Write(Session("username"))%>
A linha acima retorna: "Welcome Donald Duck" .
Você também pode armazenar as preferências do usuário no objeto de sessão e, em seguida, acessar a preferência para escolher qual página para retornar para o usuário.
O exemplo abaixo especifica uma versão somente texto da página se o usuário tem uma resolução de tela de baixo:
<%If Session("screenres")="low" Then%>
This is the text version of the page
<%Else%>
This is the multimedia version of the page
<%End If%>
Remover Variáveis de sessão
A coleção Índice contém todas as variáveis de sessão.
É possível remover uma variável de sessão com o método Remove.
O exemplo a seguir remove a variável de sessão "sale" se o valor da variável de sessão "age" é menor do que 18:
<%
If Session.Contents("age")<18 then
Session.Contents.Remove("sale")
End If
%>
Para remover todas as variáveis em uma sessão, use o método RemoveAll:
<%
Session.Contents.RemoveAll()
%>
Loop através da coleção Conteúdo
A coleção Índice contém todas as variáveis de sessão. Você pode loop através da coleção dos índices, para ver o que está armazenado nele:
<%
Session("username")="Donald Duck"
Session("age")=50
dim i
For Each i in Session.Contents
Response.Write(i & "<br>")
Next
%>
Resultado:
username
age
Se você não sabe o número de itens na coleção Conteúdo, você pode usar a propriedade Count:
<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
Response.Write(Session.Contents(i) & "<br>")
Next
%>
Resultado:
Session variables: 2
Donald Duck
50
Loop através da coleção StaticObjects
Você pode loop através da coleção StaticObjects, para ver os valores de todos os objetos armazenados no objeto Session:
<%
dim i
For Each i in Session.StaticObjects
Response.Write(i & "<br>")
Next
%>