在 ASP.NET 中注销时如何杀死用户的会话

Posted

技术标签:

【中文标题】在 ASP.NET 中注销时如何杀死用户的会话【英文标题】:How to kill the Session of User when he LoggedOut in ASP.NET 【发布时间】:2012-04-03 17:45:08 【问题描述】:

我有一个 asp.net web 应用程序登录页面,它具有 asp.net 的内置身份验证和由 asp.net 的登录控件创建的 login.aspx 页面。现在我在注销时遇到问题。

当用户按下“注销”时,链接将重定向到“Login.aspx”页面。但是,当用户从浏览器中按下“返回”按钮时,用户“登录”到我想要避免的应用程序的页面,它必须要求输入登录凭据。

帮助赞赏..! 提前谢谢..!

【问题讨论】:

【参考方案1】:

你可以试试

   protected void btnLogout_Click(object sender, EventArgs e)
    
        Session.RemoveAll();
        Session.Abandon();

        Response.Redirect("LoginPage.aspx");
    

【讨论】:

感谢您的回复..!但是,这但是不起作用...当他再次按下浏览器的“返回”按钮时,他登录到了网页。【参考方案2】:

使用以下代码:

Session.RemoveAll();
 FormsAuthentication.SignOut(); 

FormsAuthentication.RedirectToLoginPage();

【讨论】:

【参考方案3】:

如果您使用的是MasterPage,那么在您的MasterPage 的代码隐藏 中,您可以这样做

Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d);
Response.Expires = -1500;
Response.CacheControl = "no-cache";

也不要忘记在注销时清除会话。

【讨论】:

以上是关于在 ASP.NET 中注销时如何杀死用户的会话的主要内容,如果未能解决你的问题,请参考以下文章

如何在asp.net中恢复会话

如何在 OWIN ASP.NET MVC5 中注销用户

使用 asp.net 中的会话从帐户注销时遇到问题

如何在asp.net中真正注销

Asp.Net MVC 2中会话超时时的确认

如何终止会话或会话 ID (ASP.NET/C#)