如何清除浏览器历史记录清除缓存?

时间:2012-10-01 10:14:55

标签: c# javascript asp.net

我有一个登录页面和一个主页。用户可以使用用户名和密码从登录页面登录到主页。我想要实现的是:

1)当用户从主页注销时,他/她不应该通过单击浏览器中的后退转发按钮来“登录”

2)确定浏览器将存储主页的历史记录。但是,当用户单击浏览器中可用主页中的历史记录链接时,应将其重定向到登录页面而不是主页。

我尝试使用主页中page_load事件中的以下代码清除缓存:

HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));

但它仍然无效。任何形式的帮助都非常感谢。

4 个答案:

答案 0 :(得分:0)

在主页的OnPrerender()事件中使用以下代码。它对我有用。

  protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            string sb;
            sb = "<script language=javascript>\n";
            sb += "window.history.forward(1);\n";
            sb += "\n</script>";
            ClientScript.RegisterClientScriptBlock(Page.GetType(), "clientScript", sb);
        }

答案 1 :(得分:-1)

您如何存储登录信息?如果您正在使用会话变量,您可以在用户注销时清除会话,然后在您需要让用户登录查看的每个页面上检查以确保页面加载中存在会话变量,如果是,则让用户继续,如果没有重定向到登录页面(您可以通过使用母版页快速完成此操作)

如果您使用cookie存储日志,则可以在用户注销时使cookie过期

答案 2 :(得分:-1)

我有解决方案请找到下面的链接

希望你能得到答案

stackoverflow

也可以从DotnetFundaa

中找到

在页面上加载下面的代码

    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetExpires(DateTime.Now);

答案 3 :(得分:-1)

当用户登录时,保留他的用户ID或用户拥有的任何唯一ID。当他点击注销时取消设置用户ID会话。并在你的页面中添加几行

<?php
session_start();
$_SESSION['uid']=$uid;
if($uid=='')
{
header("location:loginpage.php");
}
?>

它会起作用。