En mi aplicación web ASP.NET llamo al Session.Abandon()
en Page_Load()
. Esperaría que esto abandone la sesión de inmediato y la próxima vez que haga referencia al HttpContext.Current.Session
, se debe crear una nueva sesión. Sin embargo, poner puntos de corte en los controladores Session_End
y Session_Start
en Global.asax indica que no se invocan hasta que la página haya finalizado la representación.Session.Abandon() no abandona la sesión inmediatamente
Dos preguntas:
1) ¿Por qué?
2) ¿Cómo puedo seguir usando HttpContext.Current.Session
dentro de un ciclo de vida de página una vez que se ha llamado a Session.Abandon()?
¡Gracias de antemano!
Gracias Elad. Por lo tanto, parece que la respuesta a mi segunda pregunta es que no es una buena idea continuar usando el objeto de sesión en el ciclo de vida de la página actual una vez que se ha llamado a Session.Abandon() ya que no se perderá una vez que la página ha prestado –
Creo que estará disponible en la página actual, pero no en páginas posteriores y/o si la página se actualiza/pasa por otra devolución. En cualquier caso, si llama a session.abandon, logid dicta que ya no tiene más uso :) –