session过期跳到登陆页,  写一个单独的类 ,让每一个页面继承实现,各位给看看

解决方案 »

  1.   

    不可能继承的,每个页面都必须继承自Page类你可以用母版页,在母版页中判断Session["..."]==null,确定是否已过期,然后跳转。
    也可以在web.config中直接配置错误页,出错就直接跳转
      

  2.   

    不可能继承的?我很怀疑你是搞.net的,我们项目就是楼主那样做的,写但对一个类继承Page,然后所有页面继承这个类就OK了!!!!!!!!!!!1
      

  3.   

    就是创建个类,它直接继承Page类。
    然后你新建的窗体都继承这个类。
      

  4.   

    创建个类,它直接继承Page类。
      

  5.   

    public class BasePage : System.Web.UI.Page   
      {   
      public BasePage()   
      {   
      }   
      protected override void OnInit(EventArgs O)   
      {   
      if (base.Session["UserId"] == null || base.Session["UserId"].ToString().Equals(""))   
      {   
      Response.Redirect("~/Error.aspx");   
      }   
      }   
      }   
    也可使用IHttpHanlder实现session判断
      

  6.   


    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using DBUtility;
    using Pmg.Model;namespace Pmg.Web
    {
    //每个用到Session判断的地方都继承ExtendAdmin
        public class ExtendAdmin: System.Web.UI.Page
        {
            public string  AdminId
            {
                get {              
                    if(Utils.SessionExist("ConfigId")==false)
                    {
                     return null;
                    }
                    else
                    {
                     return Session["ConfigId"].ToString(); 
                    }
                }
                set { Session["ConfigId"] = value; }
            }
            //OnInit激发Page_Load
            protected override void OnInit(EventArgs e)
            {
                AdminId = "Topserve";
                if (AdminId== null)
                {
                    Response.Redirect("/admin");
                }
                base.OnInit(e);
            }       
            public static void Exit()
            {
                HttpContext.Current.Session.Remove("ConfigId");
            }
        }
    }
      

  7.   

       恩,是可以继承的,例如你建个页面 sessionPage : Page
       然后,各个页面继承sessionPage 
      

  8.   

    我见了一个这样的类  可是还是不能跳转  我在web.config里配置的session失效时间<sessionState mode="InProc" timeout="1"/>这样可以吗 
      

  9.   


    public class PageBase : System.Web.UI.Page
        {
            protected override void OnInit(EventArgs e)
            {
                base.OnInit(e);
                Load += PageBaseLoad;
            }        private void PageBaseLoad(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                      if(Session["User"]==null)
                      {
                           response.Redirect("Login.aspx")
                       }
                }
            }
    }
      

  10.   

    为何不在Global.asax中的session_end时间里面写了?
    在web.config里设置session的生命周期,如果生命周期一到,会自动跳转到session_end事件里.
    然后在里面执行跳转事件不就OK了嘛.
      

  11.   

    basePageSessionExpire.cs下写的内容
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;namespace WMS.Web
    {
        public class basePageSessionExpire : System.Web.UI.Page
        {
            protected override void OnInit(EventArgs e)
            {
                base.OnInit(e);
                Load += PageBaseLoad;
            }        private void PageBaseLoad(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    if (Session["usrnam"] == null)
                    {
                        Context.Response.Redirect("WebForm1.aspx");
                    }
                }
            }
      
        }}我在登陆后进入的default.aspx页面继承这个类   可是session还是不能跳转到登陆页