浅谈ASP.NET中的Page_Load方法

开发 后端
本文介绍ASP.NET中的Page_Load方法,Page_Load方法响应了Load事件,这个事件是在System.Web.WebControl.Control类中定义的,并且在OnLoad方法中被触发。

ASP.NET加载对应Load事件和OnLoad方法,对于这个事件,相信大多数朋友都会比较熟悉,用VS.Net生成的页面中的Page_Load方法就是响应Load事件的方法,对于每一次请求,Load事件都会触发,Page_Load方法也就会执行,相信这也是大多数人了解ASP.Net的第一步。

Page_Load方法响应了Load事件,这个事件是在System.Web.WebControl.Control类中定义的(这个类是Page和所有服务器控件的祖宗),并且在OnLoad方法中被触发。


很多人可能碰到过这样的事情,写了一个PageBase类,然后在Page_Load中来验证用户信息,结果发现不管验证是否成功,子类页面的Page_Load总是会先执行,这个时候很可能留下一些安全性的隐患,用户可能在没有得到验证的情况下就执行了子类中的Page_Load方法。

出现这个问题的原因很简单,因为Page_Load方法是在OnInit中被添加到Load事件中的,而子类的OnInit方法中是先添加了Load事件,然后再调用base.OnInit,这样就造成了子类的Page_Load被先添加,那么先执行了。

要解决这个问题也很简单,有两种方法:

1) 在PageBase中重载OnLoad方法,然后在OnLoad中验证用户,然后调用base.OnLoad,因为Load事件是在OnLoad中触发,这样我们就可以保证在触发Load事件之前验证用户。

2) 在子类的OnInit方法中先调用base.OnInit,这样来保证父类先执行Page_Load

以上介绍ASP.NET中的Page_Load方法

【编辑推荐】

  1. ASP.NET页面显示XML数据
  2. 了解什么是IFRAME ASP.NET
  3. ASP.NET生命周期的展示
  4. 解决ASP.NET AJAX脚本的错误问题
  5. 详解ASP.NET应用程序
责任编辑:佚名 来源: 网易空间
相关推荐

2011-06-08 11:36:16

ASP.NETrender

2009-08-21 17:29:09

C# page_loa

2009-07-27 13:01:28

TreeViewASP.NET

2012-06-11 15:02:53

ASP.NET

2009-07-24 10:52:42

ASP.NET ISA

2009-07-20 15:30:11

ASP.NET应用

2009-07-22 16:11:43

ASP.NET AJA

2009-01-16 13:17:16

AjaxASP.NET.NET

2009-07-28 18:00:11

ASP.NET程序

2009-08-05 15:29:33

ASP.NET For

2009-08-10 10:19:47

ASP.NET组件设计

2009-07-28 17:49:30

ASP.NET定期回收

2009-07-20 17:12:17

ASP.NET访问数据

2009-07-23 15:44:39

ASP.NET MVC

2009-07-28 16:03:23

ASP.NET状态服务

2009-07-22 13:24:24

ASP.NET MVC

2009-07-23 15:24:37

ASP.NET Ima

2009-07-27 16:19:59

ASP.NET报表控件

2011-08-23 10:58:59

2009-07-21 14:16:02

ASP.NET管道优化
点赞
收藏

51CTO技术栈公众号