Asp.net “后退”按钮在注销后不得转到上一页
我正在开发一个asp.net网站,我没有使用asp.net的内置身份验证控件。我已经为站点的用户手动创建了表 我想要的是Asp.net “后退”按钮在注销后不得转到上一页,asp.net,authentication,forms-authentication,http-authentication,Asp.net,Authentication,Forms Authentication,Http Authentication,我正在开发一个asp.net网站,我没有使用asp.net的内置身份验证控件。我已经为站点的用户手动创建了表 我想要的是 登录后,用户可以访问页面(已完成) 当用户按“注销”时(用户转到特定页面-示例-default.aspx) 现在,当用户按下浏览器的“后退”按钮时,它不能转到上一页(这是在雅虎页面中完成的-我想实现相同的功能) 要防止用户在按下后退按钮时看到上一页,您需要指示浏览器不要缓存此页: Response.Cache.SetExpires(DateTime.UtcNow.AddDa
- 登录后,用户可以访问页面(已完成)
- 当用户按“注销”时(用户转到特定页面-示例-default.aspx)
- 现在,当用户按下浏览器的“后退”按钮时,它不能转到上一页(这是在雅虎页面中完成的-我想实现相同的功能)
Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
您可以将此代码放在所有经过身份验证的页面中,从而防止它们在客户端浏览器上被缓存。对于不被缓存的页面,浏览器需要适当地响应缓存指令,但不能保证这会在每个浏览器上都起作用!(一个邪恶的人可以编写自己的浏览器来忽略缓存信息,或者编写一个代理将其删除…)
因此,你不能让它在100%的时间内正常工作,但你总是要面对这样一个问题:用户可以轻松地拍摄屏幕截图、打印页面、将副本保存在他们的磁盘上等等。一旦你向他们提供了一个页面……你的问题的答案是:
- 当用户按“注销”时显示。(用户转到特定页面-示例-default.aspx) 您可以添加一个LinkButton作为注销链接,并在click事件处理程序中编写 重定向(“Default.aspx”)
- 目前,当用户按下浏览器的“后退”按钮时,它不能转到上一页
//将以下代码添加到页面的代码隐藏中
受保护的覆盖无效OnPreRender(EventArgs e)
{
}base.OnPreRender(e); 字符串strIDisableback按钮; strDisAbleBackButton=“\n”; strDisAbleBackButton+=“window.history.forward(1);\n”; STRIDisableBackButton+=“\n”; RegisterClientScriptBlock(this.Page.GetType(),“ClientScript”,strDisAbleBackButton);
请参阅csharpdotnetfreak.blogspot.comyep。正确且简短的解决方案。很好。你“棒极了”
base.OnPreRender(e);
string strDisAbleBackButton;
strDisAbleBackButton = "<script language="javascript">\n";
strDisAbleBackButton += "window.history.forward(1);\n";
strDisAbleBackButton += "\n</script>";
ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "clientScript", strDisAbleBackButton);