1

当用户会话即将到期时,我想将数据保存在控件中。我在 global.asax 文件的 session_end 中编写了代码。但是当用户闲置较长时间会话到期但数据未保存时,它不起作用。如果我们在 session_end 事件中编写代码,那么处理哪个事件是正确的。

4

1 回答 1

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);
            }
        }
    }
    
于 2013-11-11T15:11:32.577 回答