Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何清除浏览器历史记录和清除缓存?_C#_Javascript_Asp.net - Fatal编程技术网

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

C# 如何清除浏览器历史记录和清除缓存?,c#,javascript,asp.net,C#,Javascript,Asp.net,我有一个登录页面和一个主页。用户可以使用用户名和密码从登录页面登录到主页。我想要实现的是: 1)当用户从主页注销时,不应通过单击浏览器中的“后退”或“前进”按钮来“登录”。 2)确保浏览器将存储主页的历史记录。但是,当用户单击浏览器主页中的历史记录链接时,应该将其重定向到登录页面而不是主页。 我已尝试在主页的page_load事件中使用以下代码清除缓存: HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoC

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

1)当用户从主页注销时,不应通过单击浏览器中的“后退”或“前进”按钮来“登录”。

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

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

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

但它仍然不起作用。非常感谢您提供的任何帮助。

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


如果您使用cookie来存储登录,那么当用户注销时,您可以使cookie过期

希望你能得到你的答案

也从中发现

页面上的加载放置代码如下

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

当用户登录时,保留其用户id或用户拥有的任何唯一id。当用户单击注销时,取消用户id会话。并在页面中添加几行

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


它会工作。

在主页的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);
        }
protected override void OnPreRender(事件参数e)
{
基于预渲染(e);
捆绑某人;
sb=“\n”;
sb+=“窗口.历史记录.转发(1);\n”;
sb+=“\n”;
RegisterClientScriptBlock(Page.GetType(),“ClientScript”,sb);
}

我正在使用javascript将密码和用户名的值作为查询字符串传递这确实不是处理登录的安全方法,即使您对URL进行编码,我建议您切换到服务器端进程,作为一个用户,我知道我不会对在我的电脑上编辑网站内容感到高兴,这正是你的问题想要做的(只是我的两分钱,因为它的价值),也许它可以工作哦,php,但这里要求的是asp.net解决方案