Usuário com melhor resposta
Remover valor da sessao quando o ususario sair da pagina - como eu faco?

Pergunta
-
Ola pessoal
Tenho a seguinte logica
quando um usuario entra na pagina exemplo.aspx, ele adiciona o valor a um array, que esta na sessao.
e quando ele sair da pagina exemplo.aspx eu preciso remover um valor da sessao.
ate ai, se todo mundo click no batao que tem na pagina, isso nao teria problema, porem, existem casos em que o cliente fecha diretamente o browser.
E quando ele fecha direto, eu acabo ficando sem remover esse item da sessao.
Existe um meio de eu corrigir isso? de chamar um metodo quando o usuario fechar a pagina?
ou
existe um meio de eu listar todoas as SessionID na aplicacao?
abs.
T+
É melhor acender uma vela do que praguejar contra e Escuridão
Respostas
-
Krusst,
explico como identificar quando o usuário sai de uma página nos artigos abaixo:
http://www.aspneti.com/Descobrindo+quando+o+usuario+sai+de+uma+aplicacao+ASP.NET+Parte+1+336,0.aspx
http://www.aspneti.com/Descobrindo+quando+o+usuario+sai+de+uma+aplicacao+ASP.NET+Parte+2+337,0.aspx
http://www.aspneti.com/Descobrindo+quando+o+usuario+sai+de+uma+aplicacao+ASP.NET+Parte+3+340,0.aspx
Ricardo Oneda- Sugerido como Resposta Marcelo Ramos. _ sexta-feira, 17 de julho de 2009 23:51
- Não Sugerido como Resposta Krusst sábado, 18 de julho de 2009 00:10
- Marcado como Resposta Krusst quarta-feira, 22 de julho de 2009 14:47
-
Oi,
Esse exemplo funcionou neste instante no IE 8 :
<body onunload="doUnload()"> <script language=javascript> function doUnload() { if ((window.event.clientX < 0) || (window.event.clientY < 0)) { alert("Window closed"); } } </script>
[]'s
Dennes*Treinamento de ASP.NET em SP 25/07 apenas 12x70,88 - http://www.bufaloinfo.com.br/cursos/aspnet2.asp
*Treinamento de ASP.NET no Rio 01/08, http://www.bufaloinfo.com.br/cursos/aspnet2.asp
Tels: (11) 3170-3056, (21) 2262-1368, (21) 9240-5134 E-Mail : Contato@bufaloinfo.com.br
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp- Marcado como Resposta Krusst quarta-feira, 22 de julho de 2009 14:42
Todas as Respostas
-
Krusst,
explico como identificar quando o usuário sai de uma página nos artigos abaixo:
http://www.aspneti.com/Descobrindo+quando+o+usuario+sai+de+uma+aplicacao+ASP.NET+Parte+1+336,0.aspx
http://www.aspneti.com/Descobrindo+quando+o+usuario+sai+de+uma+aplicacao+ASP.NET+Parte+2+337,0.aspx
http://www.aspneti.com/Descobrindo+quando+o+usuario+sai+de+uma+aplicacao+ASP.NET+Parte+3+340,0.aspx
Ricardo Oneda- Sugerido como Resposta Marcelo Ramos. _ sexta-feira, 17 de julho de 2009 23:51
- Não Sugerido como Resposta Krusst sábado, 18 de julho de 2009 00:10
- Marcado como Resposta Krusst quarta-feira, 22 de julho de 2009 14:47
-
valeu pelos links Ricardo
eu fiz algo parecido, porem, com iframe, mas, o problema é que estou tentando criar um chat de atendimento
onde, so posso deixar 2 pessoas por chat.
e desta forma, eu tenho problemas, devido a algumas atitudes de usuarios.
nao é 100% garantido, pois, algumas sessoes podem ficar e com isso travaria o sistema, onde um usuario saio da pagina, e a logica nao o pegou.
Se existir um meio de eu verificar se um SessionID ainda esta ativo, ai sim, sua logica daria certo, mas do contrario, ela pode ter algumas falhas.
abs
T+
É melhor acender uma vela do que praguejar contra e Escuridão -
Krusst,
desculpe-me, mas não entendi muito bem sua explicação. Poderia dar mais detalhes sobre as "falhas" que você comentou?
Ricardo Oneda -
ola ricardo
vamos la
quando uma pessoa entra na pagina "chat", eu pego o sessionID dela e guardo.
Se for uma pessoa fora sistema(convidado) ela entra na lista de convidado, se for uma pessoa "Operador", entao entra na lista de atendentes.
ate ai, tudo bem, vou adicionando eles na lista,mas, quando ele sai da pagina, tenho que chamar uma pagina, e esta pagina tira o sessionID da lista.
e ai que esta o problema, as vezes, por algum motivo[ALT+CTRL+DEL entre outros motivos], nao é chamado.
e ai que me complica.
Eu poderia verificar se o SessionID esta "vivo" ainda, mas pelo que procurei na net, nao é possivel, isso foi descontinuado no .net.
entao é este o problema que estou tendo :s
se tu puder me ajudar dando outras ideas, seram bem vindas.
abs
Eduardo
É melhor acender uma vela do que praguejar contra e Escuridão -
Oi,
A verificação da saida do usuário precisa ser feita em javascript :
<script language="javascript" type="text/javascript"> // <!CDATA[ function window_onunload() { if (window.screenTop > 10000 && window.screenLeft > 10000) { window.open("logoff.aspx"); } } // ]]> </script>
[]'s
Dennes*Treinamento de ASP.NET em SP 25/07 apenas 12x70,88 - http://www.bufaloinfo.com.br/cursos/aspnet2.asp
*Treinamento de ASP.NET no Rio 01/08, http://www.bufaloinfo.com.br/cursos/aspnet2.asp
Tels: (11) 3170-3056, (21) 2262-1368, (21) 9240-5134 E-Mail : Contato@bufaloinfo.com.br
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp -
Bom dia Dennes
me desculpe a ignorancia
acho que ate entendi oq vc quer neste codigo.
Voce verifica a posicao na tela, se nao estiver na posicao X.Y vc o considera fechado, é isto?
bem, coloquei da seguinte forma o teu codigo
<html> <head> <title>teste</title> </head> <body onunload="window_onunload();"> <input id="isLoadPage" type="hidden" value="0" /> </body> </html> <script language="javascript" type="text/javascript"> // <!CDATA[ function window_onunload() { if (window.screenTop > 10000 && window.screenLeft > 10000) { alert('etnrtr'); window.open("logoff.aspx"); } } // ]]> </script>
porem, ele nao entra no "IF", nem qdo carrega, e nem qdo fecha
os valores que me retorna o screenTop é 144 e screenLeft é 0.
no ff, ele me retorna com undefined.
era pra fazer desta forma mesmo como testei o codigo ou outra?
abs
Obrigado
É melhor acender uma vela do que praguejar contra e Escuridão -
Oi,
Sim, está certo.
Faz algum tempo que fiz este código, na época - versões de browser, etc, - funcionou perfeitamente. Os valores de posição de tela passam a ser esse se a página estiver sendo fechada, isso permite diferenciar o fechamento do browser da simples navegação para outra página.
Mas observe que no meu caso precisei diferenciar isso - fechamento de navegação para outra página - no seu caso talvez não precise
[]'s
Dennes*Treinamento de ASP.NET em SP 25/07 apenas 12x70,88 - http://www.bufaloinfo.com.br/cursos/aspnet2.asp
*Treinamento de ASP.NET no Rio 01/08, http://www.bufaloinfo.com.br/cursos/aspnet2.asp
Tels: (11) 3170-3056, (21) 2262-1368, (21) 9240-5134 E-Mail : Contato@bufaloinfo.com.br
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp -
-
Oi,
Na época que eu fiz, utilizei para identificar o fechamento do browser e fazer logoff do usuário, não tive problemas.
[]'s
Dennes*Treinamento de ASP.NET em SP 25/07 apenas 12x70,88 - http://www.bufaloinfo.com.br/cursos/aspnet2.asp
*Treinamento de ASP.NET no Rio 01/08, http://www.bufaloinfo.com.br/cursos/aspnet2.asp
Tels: (11) 3170-3056, (21) 2262-1368, (21) 9240-5134 E-Mail : Contato@bufaloinfo.com.br
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp -
Ola
nao deu certo nao, testei com abas, sem abas do IE7 e 8.
Pode ser que no IE6 se comporte de forma diferente, mas nao tenho como testar aqui.
vou tentar fazer outros testes.
qualquer coisa retorno
abs
T+
É melhor acender uma vela do que praguejar contra e Escuridão -
Oi,
Esse exemplo funcionou neste instante no IE 8 :
<body onunload="doUnload()"> <script language=javascript> function doUnload() { if ((window.event.clientX < 0) || (window.event.clientY < 0)) { alert("Window closed"); } } </script>
[]'s
Dennes*Treinamento de ASP.NET em SP 25/07 apenas 12x70,88 - http://www.bufaloinfo.com.br/cursos/aspnet2.asp
*Treinamento de ASP.NET no Rio 01/08, http://www.bufaloinfo.com.br/cursos/aspnet2.asp
Tels: (11) 3170-3056, (21) 2262-1368, (21) 9240-5134 E-Mail : Contato@bufaloinfo.com.br
Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp- Marcado como Resposta Krusst quarta-feira, 22 de julho de 2009 14:42
-
Ola dennes
teoricamente agora funcionou
vou fazer outros teste, mas aparentemente sim
segue a sequentia de codigo
chama.html
<html> <head> <title>teste</title> </head> <body> <a href="isclose2.html">teste</a> </body> </html>
isclose2.html
<html> <head> <title>teste</title> </head> <body onunload="doUnload()"> <script language=javascript> function doUnload() { if ((window.event.clientX < 0) || (window.event.clientY < 0)) { alert("Window closed"); } } </script> </body> </html>
abs
e qualquer coisa, retorno
obrigado a ajuda de todos
T+
É melhor acender uma vela do que praguejar contra e Escuridão