Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal, estou com a seguinte duvida, em um sistema meu aqui tenho um botao sair, que tem a funcionalidade de encerrar todas as sessoes abertas para deslogar o usuario.
entoa fiz o seguinte:
loguei no sistema, cliquei no botao sair, ele tem o seguinte codigo
SAIR.ASP
<%
Session.Abandon()
response.redirect("default.asp")
%>
com isso encerra as sessoes e redireciona para pagina de login novamente.
pois entao, o sistema realemnte direciona para a pagina de login novamente, mas se eu for na barra de endereços e digitar um nome de uma pagina que exista no sistema ele entra na pagina, isso nao deveri acontecer, pois a sessao foi encerrada.
ai que esta minah duvida, provavelmente isso acontece porque a sessao nao esta sendo encerrada corretamente, o meu codigo esta correto ou falta algo?
alguem tem alguma sugestao?
opa Mário Monteiro, tinha me esqeucido de postar essa parte da verificação, ja tinha feito isso nas paginas sim, so tinha um errinho na minah digitação, ehehe
mal ae.
obrigado
abrços
faz assim, brutalmente:
<%
Session("login") = ""
Session("login") = null
Session("login") = 0
Session.Abandon()
response.redirect("default.asp")
%>
e na verificação, coloca o response.end
IF SESSION("login") = "" THEN
response.redirect("default.asp")
response.end()
END IF
agora, é login ou é o outra coisa que você passar como verificação para validar a session, é capaz até de sem querer você passar valor vazio na hora do login!
O método Contents.RemoveAll elimina todos os itens
<%
Session.Contents.RemoveAll()
%>
e pode usar assim:
<%'Desloga o usuario
Response.Buffer = true
Session.Contents.RemoveAll()
Session.Contents.Remove("sua variavel 1")
Session.Contents.Remove("sua variavel 2")
Session.Contents.Remove("sua variavel 3")
Session.Contents.Remove("sua variavel 4")
Session.Abandon
Response.Clear()
Response.Redirect "default.asp"%>
detalhe...
as variaveis saun as k estaun usadas no sistema
que bom que resolveu
abraços
depois, você pode verificar se existem sessions ainda...
<%@ Language=VBScript %>
<%Response.Buffer = true %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
Esta é uma lista de todas as SESSION VARIABLES <BR>
instanciados actualmente sobre este domínio.<br>
<TABLE border=1 cellpadding="7" cellspacing="0">
<TR>
<TD>
<B>Session Name</B>
</TD>
<TD>
<B>Valor</B>
</TD>
</TR>
<% For Each name In session.Contents
%>
<TR>
<TD>
<font size="2"><%= name %></font>
</TD>
<%If NOT ISOBJECT(session.value(name)) then %>
<TD>
<font size="2"><%= session.value(name)%></font>
</TD>
<%Else %>
<TD>
<font size="2"><%Response.Write "IS AN OBJECT"%></font>
</TD>
<%End If %>
</TR>
<% Next %>
<TR>
<TD bgcolor="#bbbbbb">
<font size="2"><%Response.Write "Session ID" %></font>
</TD>
<TD bgcolor="#bbbbbb">
<font size="2"><%= session.SessionID %></font>
</TD>
</TR>
<TR>
<TD bgcolor="#bbbbbb">
<font size="2"><%Response.Write "LCID" %></font>
</TD>
<TD bgcolor="#bbbbbb">
<font size="2"><%= session.LCID %></font>
</TD>
</TR>
<TR>
<TD bgcolor="#bbbbbb">
<font size="2"><%Response.Write "Session Timeout" %></font>
</TD>
<TD bgcolor="#bbbbbb">
<font size="2"><%= session.Timeout%></font>
</TD>
</TR>
<%
Response.Flush %>
</TABLE>
</BODY>
</HTML>
precisa de um controle nas páginas restritas
tipo um
IF SESSION("login") = "" THEN
redireciona para login
END IF