如何清除退出会话

当用户单击注销时,我将用户redirect到login页面,但是我不认为它会清除任何应用程序或会话,因为所有数据在用户重新login时都会持续存在。

目前,login页面有一个login控制,页面后面的代码只有login身份validation。

有人可以指导我一个很好的教程或文章处理login和ASP.NET网站?

我更喜欢Session.Abandon()

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

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

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

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

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

所以,如果你使用Session.Abandon() ,你将失去那个特定的会话,用户将得到一个new session key 。 例如,当用户logs out时,可以使用它。

使用Session.Clear() ,如果你想让用户保持在同一个会话中(如果你不想让他重新login),并重置所有的会话特定数据。

 <script runat="server"> protected void Page_Load(object sender, System.EventArgs e) { Session["FavoriteSoftware"] = "Adobe ColdFusion"; Label1.Text = "Session read...<br />"; Label1.Text += "Favorite Software : " + Session["FavoriteSoftware"]; Label1.Text += "<br />SessionID : " + Session.SessionID; Label1.Text += "<br> Now clear the current session data."; Session.Clear(); Label1.Text += "<br /><br />SessionID : " + Session.SessionID; Label1.Text += "<br />Favorite Software[after clear]: " + Session["FavoriteSoftware"]; } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>asp.net session Clear example: how to clear the current session data (remove all the session items)</title> </head> <body> <form id="form1" runat="server"> <div> <h2 style="color:Teal">asp.net session example: Session Clear</h2> <asp:Label ID="Label1" runat="server" Font-Size="Large" ForeColor="DarkMagenta" > </asp:Label> </div> </form> </body> </html> 

转到您的项目文件Global.asax.cs并添加下面的代码。

  protected void Application_BeginRequest() { Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Cache.SetExpires(DateTime.Now.AddHours(-1)); Response.Cache.SetNoStore(); } 

它为我工作..! 参考链接在注销MVC 4上清除会话

Session.Clear();