Вы находитесь на странице: 1из 2

Cerrar sesin en ASP.

NET (HTTPSessionState)
DIC 11 Posted by el Isra Ayer nos topamos en el trabajo con este detalle, y aunque al principio batallamos para encontrar solucin, en realidad es algo sencillo. ASP.NET utiliza un objeto HttpSessionState para permitirnos guardar variables en una sesin, es decir, mientras el usuario est en nuestro sitio Web sin cerrar el navegador.
public void Login(string usuario, string password) { if (UsuarioValido(usuario, password)) { Session["usuario"] = usuario; } }

El objeto Session se inicializa con un identificador nico para el sistema, y puede guardar tantas variables como se requieran. El problema es cuando queremos cerrar la sesin. Limpiar las variables no es tanto problema, pero cerrar una sesin significa inicializar el objeto Session por completo. Para cerrar la sesin correctamente, debemos hacer esto:
public void Logout() { Session.Abandon(); Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); }

HttpSessionState tiene un mtodo Clear() que borra todas las variables de la sesin. El

mtodo Abandon() cierra la sesin actual, lo cual har que la prxima vez que se requiera una sesin, se inicialice automticamente. No estamos usando el mtodo Clear porque Abandon se encarga de limpiar la sesin. La segunda lnea de cdigo la estamos usando para forzar el inicio de una nueva sesin, justo despus de haber cerrado la anterior. El framework utiliza una cookie llamada
ASP.NET_SessionId, en la que guarda la sesin actual, por lo que tenemos que sobreescribirla,

utilizando el objeto Response para guardar la nueva. Con esto se regenera la sesin, con un nuevo identificador y sin variables. Lista para usarse desde cero.

Вам также может понравиться