如何在会话到期之前在控件中保存数据

时间:2013-11-11 12:50:43

标签: c# asp.net .net

我希望在用户会话即将到期时将数据保存在控件中。我写了代码 global.asax文件中的session_end。但是当用户空闲较长时间会话过期但数据无法保存时,它无效。如果我们在session_end事件中编写代码,那么要处理的事件是正确的。

1 个答案:

答案 0 :(得分:0)

此时你必须变得棘手......

我个人遵循了几步来完成它......

  1. 添加基础页面
  2. 在会话变量上添加密钥IsActive以检查会话过期。
  3. 在用户登录时初始化IsActive中的值..
  4. Override OnLoad页面类的功能
  5. 添加一个功能来检查会话值即将到期
  6. 如果页面过期,则将值插入数据库tempDB表

    public abstract class BasePage : Page
    {
        protected override void OnLoad(EventArgs e)
        {
            CheckIsSessionExpired();
            //The base method must invoke after CheckIsSessionExpired
            base.OnLoad(e);
        }
    
        private void CheckIsSessionExpired()
        {
            //Handling Session Expire                  
            //Any other case if session expired then it must redirect to LogOut page
            if (Session["IsActive"]==null)
            {
                TempBLL.InsertIntotempTable("some data");
                Responne.Redirect(SessionExpiredPage);
            }
        }
    }