加載對應Load事件和OnLoad方法對於這個事件相信大多數朋友都會比較熟悉用VSNet生成的頁面中的Page_Load方法就是響應Load事件的方法對於每一次請求Load事件都會觸發Page_Load方法也就會執行相信這也是大多數人了解ASPNet的第一步
Page_Load方法響應了Load事件這個事件是在SystemWebWebControlControl類中定義的(這個類是Page和所有服務器控件的祖宗)並且在OnLoad方法中被觸發
很多人可能碰到過這樣的事情寫了一個PageBase類然後在Page_Load中來驗證用戶信息結果發現不管驗證是否成功子類頁面的Page_Load總是會先執行這個時候很可能留下一些安全性的隱患用戶可能在沒有得到驗證的情況下就執行了子類中的Page_Load方法
出現這個問題的原因很簡單因為Page_Load方法是在OnInit中被添加到Load事件中的而子類的OnInit方法中是先添加了Load事件然後再調用baseOnInit這樣就造成了子類的Page_Load被先添加那麼先執行了
要解決這個問題也很簡單有兩種方法
) 在PageBase中重載OnLoad方法然後在OnLoad中驗證用戶然後調用baseOnLoad因為Load事件是在OnLoad中觸發這樣我們就可以保證在觸發Load事件之前驗證用戶
) 在子類的OnInit方法中先調用baseOnInit這樣來保證父類先執行Page_Load
From:http://tw.wingwit.com/Article/program/net/201311/11644.html