【问题标题】:How to save data in controls before the session expires如何在会话到期之前将数据保存在控件中
【发布时间】:2014-11-19 20:44:01
【问题描述】:

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

【问题讨论】:

标签: c# asp.net .net


【解决方案1】:

这个时候你要狡猾了....

我个人按照几个步骤来完成它......

  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);
            }
        }
    }
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多