none
Matando Sessions RRS feed

  • Pergunta

  • Pessoal,

    Tenho algumas sessions em minha aplicacao onde so sao usadas em uma determinada pagina.
    Entao gostaria que ao usuario mover-se para outra pagina, esta session seja excluida. (Pois so precisarei dela nessa pagina)
    Onde eu mato essa session no Page_Unload ???

    Alem disso, se o usuario apenas fechar o browser minha session ainda estara disponivel no servidor.
    E pra matar essa session logo apos o cliente fechar o browser ou migrar para outro site ?

    Valeu

    quinta-feira, 18 de outubro de 2012 17:02

Todas as Respostas

  • Olá A.G.A Neto,

    Descobrir o que o cliente faz do outro lado é muito difícil. Como por exemplo detectar quando ele vai para outro site. Agora quando ele fecha o navegador é disparado um evento que podemos chamar uma função javascrip. Aqui fiz um exemplo.

    <%-- evento quando o navegador é fechado --%>
    <body onUnload="RemoverSessao()">
        
        <form id="form1" runat="server">
    
            <%-- Adicionar o ScriptManager --%>
            <asp:ScriptManager
                ID="ScriptManager1"
                EnablePageMethods="true"
                runat="server">
            </asp:ScriptManager>
    
            <script type="text/javascript">
                //Uma funcao que será execultada quando fechar o navegador
                function RemoverSessao() {
                    //Aqui vai ser PageMethods mais o nome do seu WebMethod
                    PageMethods.RemoveSessao();
                }
            </script>
    
        </form>


    CodeBehind

            protected void Page_Load(object sender, EventArgs e)
            {
                //crio uma session
                Session["MinhaSession"] = "excluindo session";
            }
    
            //using System.Web.Services;
            //Crio WebMethod
            [WebMethod]
            public static void RemoveSessao()
            {
                    HttpContext.Current.Session.Remove("MinhaSession");
            }

    No servidor o WebMethod RemoveSessao é removida a sessão.

    Espero ter ajudado.


    • Editado welington jrModerator sexta-feira, 19 de outubro de 2012 02:04
    • Sugerido como Resposta Sammael sexta-feira, 19 de outubro de 2012 14:35
    sexta-feira, 19 de outubro de 2012 02:03
    Moderador
  • Olá A.G.A Neto teve sucesso?
    terça-feira, 23 de outubro de 2012 21:06
    Moderador
  • Cara matei minha sesão no load da master PAge!
    sexta-feira, 4 de abril de 2014 12:27
  • Cara matei minha sesão no load da master PAge!

     Olá,

    em algum momento você terá problema se fizer isso. O Load da master page sempre é executado em um post back.


    Wennder Santos

    sexta-feira, 4 de abril de 2014 16:03