今天在看書(shū)的時(shí)候,發(fā)現一個(gè)啟示,平時(shí)在驗證登陸的時(shí)候,總是在每個(gè)頁(yè)面都寫(xiě)上Session判斷。當頁(yè)面多了,有改動(dòng)的時(shí)候,就十分麻煩,這時(shí)候可以使我們需要驗證的頁(yè)面統一繼承一個(gè)驗證類(lèi)。由于這個(gè)驗證每次是在Page_Load事件中進(jìn)行的。那么這個(gè)驗證類(lèi)就應該繼承于Page基類(lèi)。
這個(gè)是基本的驗證類(lèi):
- using System.Web;
- using System.Web.UI;
- using System.Security;
- using System.Web.UI.WebControls;
- using System.Web.UI.HtmlControls;
- /// <summary>
- ///BasePage 的摘要說(shuō)明
- /// </summary>
- public class BasePage : Page //該類(lèi)繼承自頁(yè)面最基本的Page類(lèi)
- {
- public BasePage()
- {
- this.Load += new EventHandler(YanZheng); //向該類(lèi)的Load事件中委托新事件,Yanzheng。
- }
- protected void YanZheng(object sender, EventArgs e) //驗證事件的具體實(shí)現方法
- {
- if (Session["UserName"] == null)
- {
- Response.Redirect("login.aspx");
- }
- }
- }
這是需要驗證的頁(yè)面:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- public partial class test : BasePage //這里不再繼承自Web.UI.Page,而是繼承自BasePage。但是BasePage繼承自Web.UI.Page,所以子類(lèi)也繼承該類(lèi)。
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- }
我們在頁(yè)面中不需要添加任何代碼,就可以實(shí)現驗證的功能。因為每一個(gè)新頁(yè)面都繼承自BasePage,而又間接繼承自Web.UI.Page,并且在Load事件(也就是Page_Load事件)中注冊了新事件YanZheng。所以會(huì )在Page_Load事件中自動(dòng)進(jìn)行驗證。
此文拋磚引玉,不僅僅是在類(lèi)的過(guò)程中可以用繼承,實(shí)現代碼的復用。我們最基本的aspx頁(yè)面也是一個(gè)類(lèi),繼承于基本類(lèi)Web.UI.Page,所以也可以對aspx頁(yè)面進(jìn)行統一的管理,達到代碼復用的效果。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。