当前位置:  开发笔记 > 后端 > 正文

如何在注销时清除会话

如何解决《如何在注销时清除会话》经验,为你挑选了4个好方法。

当用户单击注销时,我将用户重定向到登录页面但是我认为它不会清除任何应用程序或会话,因为当用户重新登录时所有数据都会保留.

目前,登录页面具有登录控件,页面上的代码仅通过登录Authenticate连接.

有人可以指导我一个关于处理ASP.NET网站登录和退出的好教程或文章吗?



1> Ryan Cook..:
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


我尝试Session.Abandon但它仍然没有清除会话.

2> kat1330..:

我使用以下来清除会话并清除aspnet_sessionID:

HttpContext.Current.Session.Clear();
HttpContext.Current.Session.Abandon();
HttpContext.Current.Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));


为此+1:非常好的答案,这是唯一干净的方法.在不将ASP.NET_SessionId设置为空字符串的情况下,仍将使用旧的会话ID(可以使用开发人员工具栏F12,网络,详细信息进行验证).我之前只尝试过`.Clear`和`.Abandon`,但是第三步确实是需要的.

3> AnthonyWJone..:

我会比较喜欢 Session.Abandon()

Session.Clear() 不会导致End触发,客户端的进一步请求不会引发Session Start事件.



4> BrainCoder..:

Session.Abandon()销毁会话并Session_OnEnd触发事件.

Session.Clear()只需从Object中删除所有值(内容).将session with the same key仍然是alive.

因此,如果您使用Session.Abandon(),则会丢失该特定会话,并且用户将获得该会话new session key.例如,当用户可以使用它时logs out.

使用Session.Clear(),如果你想要用户在同一个会话中剩余的(如果你不想让他重新登录,例如)和重置所有他会话特定的数据.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有