在登出时禁用浏览器的后退按钮点击雅虎,Gmail等安全性

时间:2009-08-17 09:13:33

标签: c# asp.net

首先,我将会话变量设置为globle.asax文件中的Session [“SessionId”],如下所示: -

void Session_Start(object sender, EventArgs e) 
{
  // Code that runs when a new session is started
  string sessionId = Session.SessionID;
  Session["SessionId"] = "true";
}

我在母版页的page_load()事件中使用此代码: -

Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d);
Response.Expires = -1500;
Response.CacheControl = "no-cache";

if(Session["SessionId"] == null)
{
  Response.Redirect("PatientLoginPage.aspx");
}

并使用Firefox作为我的默认浏览器,但它不能正常工作以及Chrome浏览器纠正我如果我错了请帮助我...

提前致谢,

vaibhav D。

2 个答案:

答案 0 :(得分:3)

如果我没有记错的话,Gmail和雅虎在退出时会使用2次重定向,因此当您点击“返回”时,您实际上会回到虚假页面,而不是您退出之前的页面。 试着去做同样的事情。

此外,所使用的重定向类型可能会影响浏览器历史记录(我在这里想要从http标头重定向或从简单的javascript重定向)。

尝试尝试使用此信息和虚假的“代理”页面进行试验,该页面充当“loggen in”和“log out”模式之间的中间位置

答案 1 :(得分:1)

每次会话启动时都会调用Session_Start - 因此,即使您在注销代码中调用Session.Abandon(),一旦用户点击新页面,Session_Start将被触发(因为它看起来像一个新的会话),Session [“SessionId”]将不再为null,并将再次设置为“true”。

我认为Misquamaqus有关于如何“停用”后退按钮的正确答案,但这有助于解决主页中的问题..