gpt4 book ai didi

asp.net-mvc-4 - 注销 MVC 4 上的清除 session

转载 作者:行者123 更新时间:2023-12-04 05:23:55 25 4
gpt4 key购买 nike

我需要知道如何在 MVC 4 中在注销时清除 session asp.net 我已经尝试了几乎所有的事情,但都是徒劳的。

    [AllowAnonymous]
public ActionResult SignOut()
{
Response.AddHeader("Cache-Control", "no-cache, no-store,must-revalidate");
Response.AddHeader("Pragma", "no-cache");
Response.AddHeader("Expires", "0");
Session.Abandon();

Session.Clear();
Response.Cookies.Clear();
Session.RemoveAll();

Session["Login"] = null;
return RedirectToAction("Index", "Login");
}

Session.Clear();
Session.Abandon();
Clear cookies
set session to Null on Logout etc



但是当我点击浏览器的后退按钮时。它重定向到同一个帐户。
请帮助我,当我单击注销按钮时,我将如何清除 session 变量。
我一个一个地尝试了上面的每一个,然后在组中,但结果相同。

最佳答案

当用户单击后退按钮时,浏览器会显示页面的缓存版本,这正是用户第一次下载该页面时看到的内容。但是,根本没有与服务器联系以显示该页面的缓存版本。页面的缓存版本将与下载时完全相同,因此您可以看到页面下载时登录的用户。但是,这并不意味着用户仍处于登录状态。

如果您想避免用户导航回以前的缓存页面,更简单的方法是在用户注销时删除浏览器的历史记录。您不能直接这样做,但有一种解决方法可以提供相同的结果。运行这个 JavaScript:

var Backlen=history.length;   history.go(-Backlen); 
window.location.href='new page url';

因此,您需要做的是返回一个包含此 JavaScript 的页面,以及您阅读的位置 'new page url'您必须在用户注销时插入要重定向用户的页面。

当然,避免缓存(如 Ravinder Singh 的回答)是一种选择,但避免浏览器缓存所有页面并不是一个好主意。

关于asp.net-mvc-4 - 注销 MVC 4 上的清除 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27738174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com