在page_load里判断Session("name")是否为空来检查用户是否登录,
但是我在地址栏直接输入地址页面时,有时候没走page_load,
页面就直接出来了,这是怎么回事啊,哪位能告诉我下吗,谢谢了

解决方案 »

  1.   

    好像同个IE的窗口,关了再开就会有这个问题的。
    你关掉IE再重新开一个,就不会了~
      

  2.   

    可能还是判断时机的问题有时候页面先显示,然后又跳转到登录放到OnInit看看
      

  3.   

    authentication mode="Forms"protected void Page_Load(object sender, EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
            ///判断用户是否登陆
            if (Session["UserID"] == null)
            {
                Response.Redirect("~/Login.aspx");
            }
            if (!Page.IsPostBack)
            {
                Bind(false);
            }
        }
      

  4.   

    to glt3260053:我不用form验证,不够灵活啊
      

  5.   

    to isboc :我是重开一个窗口来做的,还是这样,而且我是关掉调试了。。打开页面就是没进page_load
      

  6.   

    page_load 事件里添加 if (!IsPostBack)判断
      

  7.   

    protected void Page_Load(object sender, EventArgs e) 
        { 
            if(!Page.Ispostback)
           {
               // 在此处放置用户代码以初始化页面 
            ///判断用户是否登陆 
            if (Session["UserID"] == null) 
            { 
                Response.Redirect("~/Login.aspx"); 
            } 
            if (!Page.IsPostBack) 
            { 
                Bind(false); 
            } 
           }    }
      

  8.   

    没有走page_load除非你的代码里面有语法错误,或者你进行了拦截,否则都会进入page_load
      

  9.   

    page_load 事件里添加 if (!IsPostBack)判断
      

  10.   

    没有走page_load除非你的代码里面有语法错误,或者你进行了拦截,否则都会进入page_load
      

  11.   

    汗。不可能语法错误啊。我页面都进去了,就是有时候没走page_load,有时候又会进page_load,
    我也搞不明白了。
      

  12.   

    if ((Session["UserID"] == null?"":Session["UserID"].ToString())=="") 

       Response.Redirect("~/Login.aspx"); 

      

  13.   

    to wuyq11 :大哥啊。我page_load都没进去,你加那些代码有啥用呢
       
      

  14.   

    if(!Page.Ispostback)
    {
       放这里
    }
      

  15.   

    最好是放在page_onint事件中重写page的OnInit    protected override void OnInit(EventArgs e)
        {
            if (Session["name"] == null)
            { 
              Response.Redirect("要转向的url");
            }
        }
      

  16.   

    在  if(!Page.Ispostback) 
    外面判断
      

  17.   

    两种情况:
    1、session还没有过期,你再退出的时候没有清空session
    2、你在需要限制的页面没验证session是否为空.
      

  18.   

    新建如下类public abstract class PersonUserPage : Page
        {
            private bool _isUser;
            protected bool IsUser
            {
                get { return _isUser; }
                set { _isUser = value; }
            }
            protected override void OnLoad(EventArgs e)
            {
                if (Session["PersonName"] != null && Convert.ToString(Session["PersonName"]) != string.Empty)
                {
                    this.IsUser = true;
                }
                else
                {
                    Response.Redirect("/Person/PersonLogin.aspx");
                }
                base.OnLoad(e);
            }
        }
    然后在你需要进行验证的页面中:public partial class Company_Search : PersonUserPage
    {
    就OK了
    会在基类中判断
      

  19.   

    to deknight:我就是这么用的啊。关键就是出现了没进page_load的情况。
     那些验证放在onload里根本就没用to ppp7p:是session没清空的问题。
      

  20.   

    你都放在基类验证了,还page_load个啥?当然进不去了
      

  21.   

    在pageload方法里加
    if(!Page.Ispostback) 

      判断session 
    }
      

  22.   

     恩 要加上 if(!Page.Ispostback) 

    }
      

  23.   

    你只关了浏览器,可是session还在啊,所以直接通过地址就能访问了
      

  24.   

    你的cache没有清楚.
    请在你的aspx的页面中加上
    <%@ OutputCache Location ="None"  %>这样页面就不会cache..
      

  25.   

    to canduecho:
    我想也是cache没清除的问题。不然不可能不走page_load事件的