asp.net c# - 设置会话,然后通过global.asax重定向用户

时间:2017-02-08 02:38:30

标签: c# asp.net session

你好,我正在为此努力,我无法理解大多数问题,因为这是我第一次在ASP.NET中开发这里是我的问题。
当用户在登录页面中单击提交然后将它们重定向到somepage.aspx时,我会声明会话变量

if (dt.Rows.Count > 0)
{
    Session["usersId"] = usersId;
    Session["usersLevel"] = usersLevel;
    Session["usersRegion"] = usersRegion;
    Session["notification"] = "";
    Response.Redirect("pages/Dashboard.aspx");
}

之后,我在Web.config

中添加了一些内容
 <system.web>
    <compilation debug="true" targetFramework="4.0"/>
    <sessionState timeout = "1" mode = "InProc" />
  </system.web>

所以当然会话将会过期?/ timeout?然后在我Global.asax我把这个

void Session_End(object sender, EventArgs e) 
{

    Response.Redirect("Login.aspx");

}

然而,HttpExeception上升,即

  

在此背景下无法获得响应。

为什么回复不可用?什么时候说sessionstate模式必须设置为InProc?我只是希望在会话到期/超时时将用户重定向到该页面(我不知道它们的区别,但看起来与我相同)

谢谢

1 个答案:

答案 0 :(得分:0)

您可以考虑在AuthenticateRequest事件中执行重定向。只有inProc会话状态提供程序支持会话结束事件,它可能随时发生(即使在响应相关请求之后,这就是您看到该异常的原因)。