none
session 过期,如何导向一个特定页面? RRS feed

  • 问题

  • 用户登录后,进入非匿名页面,如,修改用户资料等,
    没有完成操作,中间可能离开了电脑,回来又接着操作,
    但这时session 过期了,而用户并不知道,如果继续操作会出现问题,
    这时,如果将用户导向到 error page,会让用户不解,不够友好。
    在这种情况下,如何导向到一个特定页面?如提示,操作时间过长,需要重新登录。。。
    有没有可能,当session time out时就自动导向到一个特定页面?

    。net网站相信都会遇到这个问题,请教前辈是如何解决的?
    • 已移动 孟宪会Moderator 2009年9月24日 13:28 (发件人:.NET Framework 一般性问题讨论区)
    2009年9月24日 5:11

答案

  • 你好 你可以使用Session_OnStart 事件和 Session_OnEnd 事件中的Session_OnEnd事件
    在Global.asax
    public void Session_OnEnd()
    {
      Application.Lock();
      Application["UsersOnline"] = (int)Application["UsersOnline"] - 1;
      Application.UnLock();
    }
    这里可以做一些服务器端的事情

    你这里其实只需在页面判断是否?Session已经失效了 如果失效了就用Response.Redirect跳转到具体的页面
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年9月24日 6:45
    版主
  • 您好,如果您采用web的Form验证机制,会自动跳转到登入页面。
    2009年9月24日 12:41
    版主
  • 首先,你需要明白的是:
    Session 过期是服务器端的事情,页面请求结束后,服务器端和客户端是断开的,所以,session 过期,是不可能导向一个特定页面的。

    一般的解决办法:
    采用定时器去每隔一定的时间请求一次服务器,以维护Session不会超时。如果不想采用定时器,则提交页面时判断:
    if(Session["xx"] == null)
    {
    Response.Redirect("SessionOut.aspx");
    }
    【孟子E章】
    2009年9月24日 13:28
    版主

全部回复

  • 你好 你可以使用Session_OnStart 事件和 Session_OnEnd 事件中的Session_OnEnd事件
    在Global.asax
    public void Session_OnEnd()
    {
      Application.Lock();
      Application["UsersOnline"] = (int)Application["UsersOnline"] - 1;
      Application.UnLock();
    }
    这里可以做一些服务器端的事情

    你这里其实只需在页面判断是否?Session已经失效了 如果失效了就用Response.Redirect跳转到具体的页面
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年9月24日 6:45
    版主
  • 您好,如果您采用web的Form验证机制,会自动跳转到登入页面。
    2009年9月24日 12:41
    版主
  • 首先,你需要明白的是:
    Session 过期是服务器端的事情,页面请求结束后,服务器端和客户端是断开的,所以,session 过期,是不可能导向一个特定页面的。

    一般的解决办法:
    采用定时器去每隔一定的时间请求一次服务器,以维护Session不会超时。如果不想采用定时器,则提交页面时判断:
    if(Session["xx"] == null)
    {
    Response.Redirect("SessionOut.aspx");
    }
    【孟子E章】
    2009年9月24日 13:28
    版主
  • 谢谢,1987raymond版主,Jiyuan版主用户奖牌用户奖牌用户奖牌用户奖牌用户奖牌

     已答复

     已答复

    2009年9月24日 23:23