none
Remover valor da sessao quando o ususario sair da pagina - como eu faco? RRS feed

  • 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
    sexta-feira, 17 de julho de 2009 20:35

Respostas

Todas as Respostas

    • 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
    sexta-feira, 17 de julho de 2009 21:14
    Moderador
  • 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
    sábado, 18 de julho de 2009 00:13
  • Krusst,

    desculpe-me, mas não entendi muito bem sua explicação. Poderia dar mais detalhes sobre as "falhas" que você comentou?
    Ricardo Oneda Blog de Ricardo Oneda Perfil de Ricardo Oneda no Twitter
    domingo, 19 de julho de 2009 20:02
    Moderador
  • 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
    domingo, 19 de julho de 2009 20:34
  • 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
    quarta-feira, 22 de julho de 2009 05:03
  • 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
    quarta-feira, 22 de julho de 2009 13:28
  • 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
    quarta-feira, 22 de julho de 2009 13:35
  • ola

    é que nos 2 casos, load e fechamento, os valores sao os mesmo(144X0).
    ja verifiquei isso.


    na epoca que voce fez, voce queria fazer a mesma coisa que eu?

    abs

    obrigado

    É melhor acender uma vela do que praguejar contra e Escuridão
    quarta-feira, 22 de julho de 2009 13:39
  • 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
    quarta-feira, 22 de julho de 2009 13:41
  • 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
    quarta-feira, 22 de julho de 2009 13: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
    quarta-feira, 22 de julho de 2009 14:25
  • 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
    quarta-feira, 22 de julho de 2009 14:42