por - Sesión de ASP.net Destruye si cierra el navegador
cerrar sesion por inactividad asp net (8)
Como parte de su manejo del cierre de sesión, llame a Session.Clear () para borrar los pares clave / valor:
http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.clear.aspx
Tengo un sitio web Cuando el usuario se registra, se cargan los detalles de la sesión. Cuando el usuario finalizó la sesión, los detalles serán abandonados. (Cierre la sesión haciendo clic en el menú de cierre de sesión) cuando el usuario simplemente cierra el navegador y luego cómo destruir la sesión.
En la próxima vez se inicia sesión con los mismos datos de sesión. Necesito evitar esto.
Puede usar el evento Page.Onload javascript para realizar una solicitud a una página que llama a Session.Abandon (). Esto hará que la sesión de los usuarios se elimine cada vez que abandone su sitio.
Tienes básicamente dos opciones:
- Establezca el tiempo de espera de las cookies de sesión durante 1 minuto y envíe la solicitud de AJAX "keep-alive" cada 30 segundos.
- No use cookies, simplemente pase los parámetros de la sesión en la consulta.
Cada solución funcionará en un 99%, si las combina, debería estar prácticamente configurado en el 99.99% de los casos. Depende de la importancia de este comportamiento para usted.
Aquí hay una publicación interesante que detalla esto.
Puede configurar sus sesiones para agotar el tiempo de espera más rápido.
En web.config:
< sessionState ... timeout="5" />
Parece que está usando una cookie persistente para almacenar el ticket de autenticación. Intente configurar el segundo parámetro (createPersistentCookie) del método SetAuthCookie en falso, es decir, FormsAuthentication.SetAuthCookie ("myusername", false);
No se llama a Page.Unload () cuando el usuario abandona el sitio, se invoca cuando el motor termina de renderizarlo, justo antes de que se envíe HTML al navegador. No hay acceso a la página una vez que ha sucedido.
Sé que en PHP puedes usar AJAX para llamar a una función de PHP con javascript. No sé si esto es posible con ASP.Net, o funcionará para las sesiones.
try
{
Session["Admin"] = null;
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Session.Abandon();
Session.Clear();
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Redirect("Dep_NewUserCreate.aspx");
}
catch(Exception ExLink)
{
Response.Redirect("Dep_NewUserCreate.aspx");
}