当用户单击注销时,我将用户重定向到登录页面但是我认为它不会清除任何应用程序或会话,因为当用户重新登录时所有数据都会保留.
目前,登录页面具有登录控件,页面上的代码仅通过登录Authenticate连接.
有人可以指导我一个关于处理ASP.NET网站登录和退出的好教程或文章吗?
Session.Abandon()
http://msdn.microsoft.com/en-us/library/ms524310.aspx
这是关于HttpSessionState
对象的更多细节:
http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate_members.aspx
我使用以下来清除会话并清除aspnet_sessionID
:
HttpContext.Current.Session.Clear(); HttpContext.Current.Session.Abandon(); HttpContext.Current.Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
我会比较喜欢 Session.Abandon()
Session.Clear()
不会导致End触发,客户端的进一步请求不会引发Session Start事件.
Session.Abandon()
销毁会话并Session_OnEnd
触发事件.
Session.Clear()
只需从Object中删除所有值(内容).将session with the same key
仍然是alive
.
因此,如果您使用Session.Abandon()
,则会丢失该特定会话,并且用户将获得该会话new session key
.例如,当用户可以使用它时logs out
.
使用Session.Clear()
,如果你想要用户在同一个会话中剩余的(如果你不想让他重新登录,例如)和重置所有他会话特定的数据.