tutoriais mais recente desenvolvimento web
 

ASP objeto Session


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