登陆界面验证类

      在web开发中,往往需要设置一个登陆界面,并且对所有的子页面进行验证(在pageload事件中):如果没有输入登陆信息(没有经过登陆界面信息验证),则强制将页面跳转到登陆界面。但是当子页面较多时,在每个子页面的pageload事件中做验证显得有些麻烦,有没有一个统一的方法进行验证呢?asp.net提供了两种解决方案:一种套用模板,另一种是单独添加一个登陆验证类! 今天介绍一下第二种验证方式:

     添加一个类文件(比如叫做:PageBase.cs),让这个类继承System.Web.UI.Page 这个类文件中的代码如下:

using System;
using System.Web;
using System.Web.UI;

namespace LoginPage
{
    public class PageBase:System.Web.UI.Page
    {
        public PageBase()
        { 
         this.Load+=new EventHandler(PageBase_Load);
        }
        public void PageBase_Load(object sender, EventArgs e)
        {
            if (HttpContext.Current.Session["userID"] == null && HttpContext.Current.Session["userName"] == null)
            {

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

      首先定义一个PageBase_Load方法的方法,在这个方法里进行验证,检验保存在缓存中的用户信息是否为NULL,如果为NULL则将页面强制跳转到登陆页。定义好这个方法后,在该类的构造函数中通过委托调用这个方法,委托的对象是 服务器控件加载到System.Web.UI.Page 即:this.Load
     然后再让每个子页面继承这个类,一旦继承该类,每个子页面就会通过这个类文件验证登陆信息,避免了在每个子页面中添加验证信息!

原文地址:https://www.cnblogs.com/wangjianhui008/p/3532017.html