我新建了一个类  下边是内容  我想让所有的页面继承这个类   当session失效时跳回到登陆页   可是不好使 麻烦各位给看看
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 || Convert.ToString(Session["usrnam"]) == "")
                {
                    Context.Response.Redirect("login.aspx");
                }
            }
        }
    }}

解决方案 »

  1.   


    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
               if (Session["username"]=="" && Session["username"]==null)
                 {
                      Response.Write("<script>alert('请先登陆!');location.href='login.aspx'</script>");
                 }  
            }    }
      

  2.   

    在Global.aspx文件中的如下函数实现跳转行不行???
    void Session_End(object sender, EventArgs e) 
        {
            // 在会话结束时运行的代码。 
            // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
            // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer 
            // 或 SQLServer,则不会引发该事件。    }
      

  3.   

    if (!Page.IsPostBack)
      {
      if (Session["usrnam"] == null || Convert.ToString(Session["usrnam"]) == "")
      {
      Context.Response.Redirect("login.aspx");
      }
      }
    这样写就是每次页面第一次加载就判断
    若是点击按钮会发时呢,就不会进行判断了
      

  4.   

    判断放错位置拉,放到if (!Page.IsPostBack) 前面