asp.net 判断session是否过期

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;

/// <summary>
/// Summary description for Module
/// </summary>

//1.继承IHttpModule类,实现接口成员
namespace JudgeSessionOutTime
{
    public class Module : IHttpModule, IRequiresSessionState
    {
        public void Dispose()
        {
        //   throw new NotImplementedException();
        }

        public void Init(HttpApplication context)
        {
            //原因:这个事件时,Session尚未创建。要先指定类型在判断地址栏是否存在
            //context.BeginRequest += new EventHandler(context_BeginRequest);
            context.AcquireRequestState += (obj, e) =>
            {
                var app = (HttpApplication)obj;
                var url = app.Request.RawUrl;
                //还要先判断下请求类型
                if (url.IndexOf(".aspx") > 0)
                {
                    //判断非UserLogin请求 防止进入死循环(此网页包含重定向循环)
                    if (url.IndexOf("Login.aspx") < 0)
                    {
                        if (url.IndexOf("GetValidateCode") > 0 || url.IndexOf("UserRegister") > 0 || url.IndexOf("notify_url") > 0 || url.IndexOf("return_url") > 0)//排除过滤选项
                        {
                        }
                        else if (app.Context.Session["admin"] == null)
                        {
                           //app.Response.Redirect("../Login.aspx", false);

                            string loginURl ="/Login.aspx";
                          //  Utility.Jscript.alert("本次登录已经超时,请重新登录系统");
                            app.Context.Response.Write(" <script>top.location='" + loginURl + "' ;</script>");
                            app.Context.Response.End();
                        }
                    }
                }
            };
        }
    }
}

  

原文地址:https://www.cnblogs.com/yzenet/p/3377438.html