Session.Abandon() VS Session.Clear() ¿Que diferencia existe?
Parece una tontería pero estoy seguro que mucha gente que lea este post no sabe la diferencia que existe entre Session.Abandon() y Session.Clear(), o me equivoco???
Cuando en una aplicación Web utilizamos el método Session.Abandon(), a parte de eliminar dicha sesión, se dispara el evento Session_End del Global.asax, en el cual podemos incluir la lógica necesaria para realizar cuando una sesión termina (por ejemplo borrado de ficheros temporales asociados a al IdSesion) y en la siguiente petición que hagamos se dispará el evento Session_Start del global.asax, en el cual podemos inicializar variables, cargar objetos... mientras que con Session.Clear() sólo eliminamos la sesión.
Podríamos encontrar una similitud entre Session.Abandon() con el botón Cerrar Sesión de Windows, imaginaros que en una aplicación Web necesitamos hacer un logout y al mismo tiempo login con otro usuario, lo que nos lleva a realizar una inicialización de los datos sobre el usuario que podríamos realizar en el evento Session_Start, no??
Bueno pues esto es todo amigos!!!
Salu2.