ASP.NET_SessionId超时时未生成其他会话

时间:2015-05-23 05:52:55

标签: c# asp.net session

我正在尝试重新生成ASP.NET_SessionId。为此,我将到期日设置为-30天,并声明另一个名为Session["IsAuntheticated"]的会话并将其设置为true。之后我将我的页面重定向到另一页。代码示例如下:

 Session.Abandon(); // Session Expire but cookie do exist
 Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddDays(-30);
 Session["IsAuntheticated"] = "true";
 Response.Redirect("/Webforms/Administration/Default.aspx", false);

我正在检查Session["IsAuntheticated"]这样的默认页面

 if (Session["IsAuntheticated"] == null)
 {
      //doing something
 }

当我调试时,每次我得到Session["IsAuntheticated"]的空值。

我的要求是通过保持其他会话的相同值来重新生成ASP.NET_SessionId以修复visual studio 2008中的会话劫持错误。我该怎么做?我试过this link

据我所知,这是因为ASP.NET_SessionId到期。

1 个答案:

答案 0 :(得分:1)

尝试使用下面的代码我希望这个有用。

Session.Clear(); // Session Expire but cookie do exist 

Response.Cookies["ASP.NET_SessionId"].Expires =DateTime.Now.AddDays(-30);         Session["IsAuntheticated"] = "true";         Response.Redirect("/Webforms/Administration/Default.aspx", false);