登陆界面验证类
在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
然后再让每个子页面继承这个类,一旦继承该类,每个子页面就会通过这个类文件验证登陆信息,避免了在每个子页面中添加验证信息!