【发布时间】:2014-11-19 20:44:01
【问题描述】:
我想在用户会话即将到期时将数据保存在控件中。我把代码写在 global.asax 文件中的 session_end。但是当用户闲置较长时间会话到期但数据未保存时,它不起作用。如果我们在 session_end 事件中编写代码,处理哪个事件是正确的。
【问题讨论】:
我想在用户会话即将到期时将数据保存在控件中。我把代码写在 global.asax 文件中的 session_end。但是当用户闲置较长时间会话到期但数据未保存时,它不起作用。如果我们在 session_end 事件中编写代码,处理哪个事件是正确的。
【问题讨论】:
这个时候你要狡猾了....
我个人按照几个步骤来完成它......
IsActive 以检查会话到期。 IsActive中的值..Override OnLoad页面类函数如果页面过期,则将值插入数据库 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);
}
}
}
【讨论】: