如何避免历史回退到登录页面

168 篇文章 6 订阅
159 篇文章 3 订阅

我搞出来的网站,在浏览器中按回退,不小心就退到登录页面,是可忍,孰不可忍。

怎么搞定这个问题?

试来试去,什么禁止缓存,meta里面no-cache啦,什么后台代码里

Response.Buffer=true;
Response.ExpiresAbsolute=DateTime.Now.AddSeconds(-1);
Response.Expires=0;
Response.CacheControl="no-cache";

啦,言之凿凿,告诉你,朕试过了,都没有什么卵用。

想想也是哈,这些语句,都是在告诉浏览器:嘿,兄弟,你可别缓存哟,这个一定要马上过期哟。我靠,将希望寄托在浏览器身上,浏览器如果不听你的呢?想想都不靠谱。

真正有用的,还是我大脚本。
我用ASP.NET MVC为例

控制器:

[HttpPost]
[AuthorizeIgnore]
public ActionResult Login()
{
    if(登录成功)
    {
        ViewBag.Redirect = tourl;
    }
    return View();
}

视图View:

<!DOCTYPE html>
@if (ViewBag.Redirect != null)
{//登录成功后返回
    <html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>用户登录</title>
        <script src='@Url.StaticFile("media/js/jquery-1.10.1.min.js")' type="text/javascript"></script>
        <script src='@Url.StaticFile("~/Content/Scripts/wait.js")' type="text/javascript"></script>
    </head>
    <body>
        <script type="text/javascript">
            waitIcon.wait("正在登录。。。");
            $(function () {
                var tourl = "登录后页面地址";
                window.location.replace(tourl);//登录成功后,先回到这里,然后再从这里跳转。注意跳转用的是window.location.replace
            });
        </script>
    </body>
</html>
}
else
{//首次输出登录页
<html lang="en">
<head>
</head>
<body>

<!-- 这里是登录页面 -->
。。。。。省略一千字

</body>
</html>

<script type="text/javascript">

    jQuery(document).ready(function () {
        window.history.replaceState(null, "网站标题", '网站的默认页地址,不是这个登录页面地址');//登录页一加载,马上用默认页地址置换了登录页地址。放心,不会引起跳转
    });

</script>
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值