打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
统一管理页面的验证——由自定义继承Page基类想到的。

今天在看书的时候,发现一个启示,平时在验证登陆的时候,总是在每个页面都写上Session判断。当页面多了,有改动的时候,就十分麻烦,这时候可以使我们需要验证的页面统一继承一个验证类。由于这个验证每次是在Page_Load事件中进行的。那么这个验证类就应该继承于Page基类。

这个是基本的验证类:

 

[c-sharp] view plaincopy
  1. using System.Web;  
  2. using System.Web.UI;  
  3. using System.Security;  
  4. using System.Web.UI.WebControls;  
  5. using System.Web.UI.HtmlControls;  
  6. /// <summary>  
  7. ///BasePage 的摘要说明  
  8. /// </summary>  
  9. public class BasePage : Page    //该类继承自页面最基本的Page类  
  10. {  
  11.     public BasePage()  
  12.     {  
  13.         this.Load += new EventHandler(YanZheng);    //向该类的Load事件中委托新事件,Yanzheng。  
  14.     }  
  15.     protected void YanZheng(object sender, EventArgs e) //验证事件的具体实现方法  
  16.     {  
  17.         if (Session["UserName"] == null)  
  18.         {  
  19.             Response.Redirect("login.aspx");  
  20.         }  
  21.     }  
  22. }  
 

 

这是需要验证的页面:

[c-sharp] view plaincopy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. public partial class test : BasePage    //这里不再继承自Web.UI.Page,而是继承自BasePage。但是BasePage继承自Web.UI.Page,所以子类也继承该类。  
  8. {  
  9.     protected void Page_Load(object sender, EventArgs e)  
  10.     {  
  11.     }  
  12. }  
 

我们在页面中不需要添加任何代码,就可以实现验证的功能。因为每一个新页面都继承自BasePage,而又间接继承自Web.UI.Page,并且在Load事件(也就是Page_Load事件)中注册了新事件YanZheng。所以会在Page_Load事件中自动进行验证。

 

 

此文抛砖引玉,不仅仅是在类的过程中可以用继承,实现代码的复用。我们最基本的aspx页面也是一个类,继承于基本类Web.UI.Page,所以也可以对aspx页面进行统一的管理,达到代码复用的效果。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
aspx页面事件执行顺序
Could not load file or assembly ‘App_Web_xxxx’ or one of its dependencies. 系统找不到指定文件.
关于Asp.NET中页面事件加载的先后顺序
asp.net页面事件重写问题
服务器端操作Cookie[2]
未将对象引用设置到对象的实例。
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服