Descobrindo quando o usuário sai de uma aplicação ASP.NET

Às vezes nos deparamos com a necessidade de realizar algum processamento ou executar algum código quando o usuário deixa uma aplicação web. Isso acontece nas seguintes situações:

  • o usuário deixa de utilizar a aplicação por um determinado período de tempo
  • o usuário acessa um outro site, deixando o site da nossa aplicação
  • o usuário fecha o browser

Escrevi uma série de artigos que mostra como podemos detectar a ocorrência das situações descritas acima. Para isso, mostro algumas técnicas, como o uso do evento Session_End do ASP.NET e o evento onunload do JavaScript em conjunto com requisições AJAX:

Descobrindo quando o usuário sai de uma aplicação ASP.NET - Parte 1

Descobrindo quando o usuário sai de uma aplicação ASP.NET - Parte 2

Descobrindo quando o usuário sai de uma aplicação ASP.NET - Parte 3

Aproveito para comunicar que, a partir destes, pretendo publicar os próximos artigos no site da comunidade ASPNETI.

Comentários, críticas e sugestões são sempre bem-vindos!

Comments (7) -

  • Gustavo

    3/7/2007 8:57:31 PM | Reply

    Muito bom os artigos!!!

    Acho que poderia postar aqui aqueles de gerenciamento de estado.

    Parabéns!!!

    [ ]'s

    Guga

  • Fabio Galante Mans

    3/8/2007 12:07:59 AM | Reply

    Oneda que satisfação ver seus artigos publicado em nossa Comunidade.

    Abraços

    Fabio Galante Mans

  • Mauricio Junior

    3/8/2007 12:17:26 AM | Reply

    Ricardo,

    legal o artigo, parabéns por ajudar tanto os desenvolvedores e as comunidades.

  • Mauricio Junior

    3/17/2007 2:59:39 AM | Reply

    Ricardo,

    meus parabéns pelos artigos, me ajudou muito e está ajudando muita gente.

  • Mauricio Junior

    10/18/2007 7:25:50 PM | Reply

    Ricardo,

    Publique mais artigos...

    Abraços

  • Marcos Cruz

    11/30/2009 9:56:54 PM | Reply

    Olá Ricardo Oneda,

    Primeiramente, quero parabenizá-lo pelo excelente artigo "Descobrindo quando o usuário sai de uma aplicação .NET".

    Em minha aplicação, eu tenho uma função que é chamada em todas as páginas (código repetido) no PageLoad, para salvar a "provável hora que o usuário deixou a minha aplicação". Isto se faz necessário, porque a cobrança pode ser feito por tempo de utilização.

    Ocorre que a solução adotada, além de tosca, não garante que o usuário saiu da aplicação. Pois bem, realizando pesquisas, cheguei ao seu artigo, e fiz uma prova de conceito que funcionou perfeitamente em localhost, já quando coloquei em produção parou de funcionar.

    Insisti na pesquisa, e acabei descobrindo que os protocolos GET e POST, são liberados apenas em ambiente de desenvolvimento e por questões de segurança, uma vez publicado um site/webserviceeste protocolos são desabilitados, devendo o programador ou analista providenciar a liberação através da inclusão no arquivo web.config dos comandos abaixo.

    <system.web>
        <webServices>
          <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
          </protocols>
        </webServices>
    .
    .
    .

    Pois bem, eu fiz as mudanças no arquivo web.config, e mesmo assim, a minha pagina Finaliza.aspx não é chamada.

    Você poderia me ajudar a identificar o motivo e por consequencia a solução?


    Obrigado,

    Marcos Cruz

Loading