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

asp.net请求非法页面,如何自动跳转到登录页面
如题,未登录时候要访问userinfo.aspx时,肯定要跳转到Login.aspx。如何实现呢?
不要那种if(Session["**"]!=null)的判断,因为一个项目中上百个页面,有很多页面当没有登录都要返回登录页面。都这样判断肯定太麻烦了。
大家给出具体的方法吧。谢谢

------解决方案--------------------
麻烦啥,一开始就应该有这个判断,每个页面中都引用一个接口,或者从基类页面继承,基类页面中去判断
------解决方案--------------------
Basepage 继承
------解决方案--------------------
web.config 添加

    <authentication mode="Forms">
      <forms loginUrl="Login.aspx"  name=".ASPXAUTH"></forms>
    </authentication>-->
------解决方案--------------------
引用:
Basepage 继承

+1,搞个基类页面(比如Basepage.cs,它最终的父级是System.Web.UI.Page )来处理请求地址的参数(其实可以做很多事),然后你的页面继承它咯,Basepage.cs可以在构造函数里面处理,也可以从写OnInit事件;当然,处理这些还可以通过继承System.Web.IHttpModule,来实现Init,然后做BeginRequest处理。楼主记得给分啊
------解决方案--------------------
在一个基类中判断是否有session,然后所有页面继承这个类就行了··
------解决方案--------------------
传送门:
Basepage类+Session通用用户登录权限控制


------解决方案--------------------
建个basepage类继承System.Web.UI.Page
protected override void OnInit(EventArgs e)
        {
            //判断逻辑。。。。
             
            base.OnInit(e);
        }


用到的页面继承basepage.
------解决方案--------------------
11.楼的方法可行,是相对来说最好用的方法.
另外还有以下方法作为参考:
1.使用母版页
2.自己实现HttpMoudle,在请求过程中验证
3.自己实现HttpHander在请求过程中验证
4.在每个页面都引用同一个用户控件
5.利用asp.net自带的验证体系,如:表单验证.等
------解决方案--------------------
引用:
如题,未登录时候要访问userinfo.aspx时,肯定要跳转到Login.aspx。如何实现呢?
不要那种if(Session["**"]!=null)的判断,因为一个项目中上百个页面,有很多页面当没有登录都要返回登录页面。都这样判断肯定太麻烦了。
大家给出具体的方法吧。谢谢


那就写在你的Global.asax中的 Application_BeginRequest 方法里好了!
------解决方案--------------------
http://hi.baidu.com/cwd3079530/item/c0838afdb7d10a703c198b56
------解决方案--------------------
引用:
有没有大神把代码贴出来看看···菜鸟一枚


例如:
void Application_BeginRequest(object sender, EventArgs e)
{
    if (Context.Request.Cookies["loginID"] == null && Context.Request.PhysicalPath != Context.Server.MapPath("~/login.aspx"))
        Context.Response.Redirect("~/login.aspx");
}



------解决方案--------------------
扩展Page,写自己的Page
------解决方案--------------------
引用:
楼上各位说的方法都很常用。