Inquiridor
Matando Sessions

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
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
-
-
-