ASP.NET处理Session过期的几种方案
一、在每个页面加载的时候,进行Session的判断,如果是过期就重新登录
protected void Page_Load(object sender, EventArgs e)
{
if(Session["USER"] == null || Session["USER"].ToString().Equals(""))
{
Response.Redirect("Login.aspx");
}
}
每个页面都加这些代码,很麻烦?
因为Session丢失本身就是一个严重错误,若不进行捕捉,那么程序将无法进行下去。
只有回到重新登录界面的好。
所以,没办法,每个页面加载的时候都得判断。
二、专门写一个CONN类,这个类里就是一些常数定义数据库连接什么的
在CONN类的PAGE_LOAD事件里对SESSION进行判断,如果已经过期就重定向一张页面SERROR.ASPX
然后每个页面都继承CONN类
三、在web.config文件里设置一下
如果遇到错误(指的是用到Session时,Session却为空值)就指向一张错误处理页面,告诉用户登录已超时,请重新登录
在web.config文件里,找到<system.web>节点,在里面加上子节点
<customerrors mode="on" defaultredirect="Login.aspx">
</customerrors>