日期:2014-05-17  浏览次数:20432 次

ASP.NET做网页的问题~
我在母板里面写了这个
protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["username"] == null)
            Response.Redirect("login.aspx");
    }
目的是为了让不登陆不能进入什么页面,但我加了这个以后,连登陆页面也打不开了,就是卡着什么也不显示,显示着打开什么,然后!该链接已经损坏~
这是为什么啊~~~

------解决方案--------------------
我在猜想一种可能性:你Login.aspx页面是否是母页模板的内容页?
Login.aspx页面中PageLoad()事件无任何处理程序,加载完毕后紧接着加载模板页的PageLoad。。然后继续又跳转到Login.aspx页面。。。。
最后结果是就在一个一个无限跳转页面过程中被卡住?
------解决方案--------------------
login.aspx是否也引用了母版页!
------解决方案--------------------
写个基类吧 需要验证的页面后台继承这个基类
------解决方案--------------------
使用Form 认证,然后webconfig里面做一下配置 可以做到。
------解决方案--------------------
   Response.Redirect("login.aspx");
后加载了其他页面导致Session["username"] == null,进入死循环,建议修改if条件,使用用户名密码是否匹配或者其他条件做判断。
------解决方案--------------------
引用:
引用?:写个基类吧 需要验证的页面后台继承这个基类 能说的具体点吗
写一个类 继承System.Web.UI.Page 重写OnInit方法,在重写的方法里面验证登录。 哪个页面需要登录 你就继承这个类,貌似你现在是login页面也验证是否登录,死循环了  
------解决方案--------------------

    public class BasePage : System.Web.UI.Page
    {
        protected override void OnInit(EventArgs e)
        {
            if (Session["username"] == null)
                Response.Redirect("login.aspx");
             base.OnInit(e);
        }
    }