ASP.NET核心处理技术简介

ASP.NET应用程序对象

一、请求的处理参数:上下文对象HttpContext

当一个请求到达ASP.NET服务器,为了处理请求,ASP.NET在服务器上创建了HttpRequest类型的对象来表示请求参数,HttpResponse类型的对象表示回应的处理对象,也就是说,为了处理一次Http请求,我们需要众多的对,象来表示处理请求所需要的数据,为了简化服务器端对参数的处理工作,ASP.NET中定义了HttpContext;类型来统一处理参数的表示问题。

二、应用程序对象HttpApplication

当HttpContext对象创建以后,HttpRuntime将随后创建一个用于处理请求的对象,这个对象的类型就是HttpApplication。它是ASP.NET中处理请求的重要对象,但是它是由ASP.NET创建的,为了便于扩展处理工作,HttpApplication采用处理管道的方法进行处理,也就是将处理分为多个步骤,每个步骤通过编写事件的形式暴露给程序员,这些事件是按照一定顺序一次触发的,我们可以通过编写事件成立方法就可以自定义每一个请求的扩展处理过程。

我们看一下HttpApplication的19个标准事件

1 BeginRequest                      ASP.NET开始处理的第一个事件,表示处理的开始

2 AuthenticateRequest                验证请求,一般用来处理取得请求的用户信息

3 PostAuthenticateRequest            已经获取请求的用户信息

4 AuthorizeRequest                    授权,一般用来检查用户的请求是否获得权限

5 PostAuthorizeRequest                用户请求已经得到授权

6 ResolveRequestCache                 获取以前处理缓存的处理结果,如果以前缓存过,就不必再进行请求的处理,直接返回缓存的结果

7 PostResolveRequestCache             已经完成缓存的获取工作

8 PostMapRequestHandler               已经根据用户的请求,创建了处理请求的处理器对象

9 AcrequireRequestState               取得请求的状态,一般用于Session

10 PostAcrequireRequestState           已经取得Session

11 PreRequestHandlerExcute             准备执行处理程序

12 PostRequestHandlerExcute            已经执行了处理程序

13 ReleaseRequestState              释放请求的状态

14 PostReleaseRequestState             已经释放了请求的状态

15 UpdateRequestCache                  更新缓存

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/aspx/

16 PostUpdateRequestCache              已经更新了缓存

17 LogRequest                          请求的日志操作

18 PostLogRequest                      已经完成了请求的日志操作

19 EndRequest                          本次请求到此结束

首先触发的事件就是BeginRequest,这个事件标志着服务器处理工作的开始,也是程序员在ASP.NET中针对请求所能处理的第一个事件。

开始处理请求后,第一个工作就是要验证用户的身份以实现安全机制,这个工作通过AuthenticateRequest和PostAuthenticateRequest两个事件处理。显然AuthenticateRequest表示开始检查用户身份,而PostAuthenticateRequest表示验证完成。

当ASP.NET获取用户身份后,根据当前用户的身份,开始请求权限的检查工作,当第四个事件AuthorizeRequest触发的时候,表示进行用户权限的检查工作,而第五个事件则标志着完成了用户权限的检查工作,如果用户没有通过安全检查,一般情况下,将跳过剩下的事件,直接触发最后一个事件结束处理。

当用户获得了请求的权限,那么服务器开始准备用最快的方式来是用户得到回应的结果,ResolveRequestCache事件标志着检查缓存,看看是否可以直接从以前的缓存的结果中直接取得处理的结果。PostResolveRequestCache 表示缓存检查的结束。

当不能从缓存中获取结果的时候,则必须通过一次处理来计算当前请求的结果,在.NET中,用于处理请求以得到结果的需对象称之为处理对象Handler,在ASP,NET中提供了许多处理程序,程序员也可以自定义处理程序,为了处理这个请求,ASP.NET必须按照匹配规则找到一个处理当前求情的处理程,PostMapRequestHandler事件标志ASP.NET已经获得了这个处理程序对象,HttpContext的Handler就表示这个处理对象。

得到处理程序后,还不能立马开始处理,这是因为处理请求还需要许多与这个请求相关的数据,比如我们保存在服务器上关于用户的一些数据,于是Session就出现了,他提供了基于会话的状态管理。

为了获取用户以前保存的数据,AcrequireRequestState事件给程序员提供了一个切入点,PostAcrequireRequestState 则表示应经获取了用户的数据,可以在处理中使用了。

现在我们接下来就是PreRequestHandlerExcute真正开始告诉程序员处理程序就要开始工作了。如果用户的状态已经获取,还有需要在处理程序处理之前进行的工作,就在这个事件中开始吧。

在PreRequestHandlerExcute事件之后,ASP.NET服务器将通过执行处理程序完成请求的处理工作,这个处理程序可能是一个Web窗体,也可能是一个Web服务。

处理程序完成后,服务器开始扫尾工作,PostRequestHandlerExcute 通知程序员,ASP.NET服务器的处理程序已经完成。

在处理完成后,由于在处理程序中,用户可能修改了用户特定的专属数据,那么修改后的用户状态数据可能需要进行序列化和保存处理,ReleaseRequestState事件通知程序员释放这些数据,PostReleaseRequestState则表示已经释放完成。

在处理完成后,如果希望将这次处理的结果缓存起来,以便于在后继的请求中可以直接使用这个结果,UpdateRequestCache 提供了处理的机会,PostUpdateRequestCache 则表示缓存已经更新完成。最后节结束了。

---恢复内容结束---

时间: 2024-09-15 10:45:52

ASP.NET核心处理技术简介的相关文章

《圣殿祭司的ASP.NET4.0专家技术手册》----1-1 ASP.NET平台的三分天下

1-1 ASP.NET平台的三分天下 圣殿祭司的ASP.NET4.0专家技术手册 如果访问微软www.asp.net网站,会发现ASP.NET技术目前有3位成员:Web Form.MVC和Web Pages,如图1-1所示.它们各有不同的定位与特色,彼此的开发方式也不相同.目前,使用人数与市场占有率最高的仍是Web Form,而MVC近两年有不少技术玩家和项目采用,至于Web Pages,则是另外的Web Matrix开发工具预定的网页开发技术,它走更易于使用的开发路线. 你心里可能有疑问:"为

JSP(J2EE)技术简介

j2ee|js JSP是Java Server Page,J2EE是Java 2 Enterprise Eidtion,它们是Sun公司建立在Java语言上的一种服务器端的编程技术,简单来说,它是用来动态生成网页的一种技术,现在的主要对手是微软主推的ASP.NET. JSP应该是属于J2EE的一部分,JSP只是用来动态生成web页面的,jsp文件的后缀是.jsp,和php等技术一样,人们习惯以文件后缀命名这项技术,其实决大部分(可以说是全部)的数据库操作和很大一部分的复杂商业逻辑都是在JavaB

109_《Delphi4核心编程技术》

<Delphi4核心编程技术> Delphi 教程 系列书籍 (109) <Delphi4核心编程技术> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 书名:Delphi 4核心编程技术 作者:徐新华等编著 ISBN:7-980007-75-1 价格:CNY30.00 发行地:北京 出版社:北京希望电脑公司 出版时间:1998 页数:249页 开本:26cm 内容简介 本书深入地介绍了Delphi4的数据库及MIDAS编程技术,尤

二、三、四层交换的区别/四层交换技术简介

随着宽带的普及,各种网络应用的深入,我们的局域网络正在承担着繁重的业务流量.网络系统中的音频.视频.数据等信息的传输量充斥着占用带宽,我们不得不为这些数据流量提供差别化的服务,让时延敏感性的和重要的数据优先通过,这就不得不考虑第四层交换,以满足基于策略调度.QoS(Quality of Service:服务质量)以及安全服务的需求. 二.三.四层交换的区别 第二层交换实现局域网内主机间的快速信息交流,第三层交换可以说是交换技术与路由技术的完美结合,而第四层交换技术则可以为网络应用资源提供最优分配

asp.net中ajax技术是否可以实现停止服务器端正在运行的按钮事件

问题描述 asp.net中ajax技术是否可以实现停止服务器端正在运行的按钮事件 给予B/S的webform项目 在服务器端有一个按钮事件 执行时间较长 所以就添加了一个按钮用来可以随时停止正在运行的耗时较长的按钮 问题是那个正在服务器端运行的按钮是否可以被其他按钮终止呢?求解答 解决方案 不可以.首先将长时间操作的任务放在按钮事件中就是错误的.按钮事件在页面回传前调用,ajax回发根本在页面加载后.你应该用消息队列.后台服务去执行长时间的任务. 解决方案二: 这个理论上是可以实现的. 服务器端

ASP.NET的缓存技术

asp.net|缓存 介绍大量的网站页面是采用动态的方式,根据用户提交的不同请求创建生成页面.正如我们所知的,动态页面有助于根据用户要求来提供定制的动态内容.动态页面也利于获取在数据库中每时每刻更新的资料.缺点是为每个用户请求生成同一页面增加了系统开销. 为克服此问题,一些网站用页面生成引擎对所有页面生成html静态页面.但这样生成的页面对所有用户的请求内容都是相同. ASP.NET 提供了缓存技术有助于我们最大程度地解决这个问题.它能缓存输出的页面,保存在存储器当中,缓存用户请求的内容.缓存的

ASP.Net使用缓存技术提高效率

asp.net|缓存     ASP.Net的缓存技术大大地提高了效率,本人将代码的简单的实现代码贴出: 一.在页面中显示时,读缓存数据,加载XML数据 public void LoadData()   {   DataView Source = (DataView)Cache["MyData"];   if(Source == null)    {    DataSet ds = new DataSet();    FileStream fs = new FileStream(Ser

Internet防火墙技术简介

1. 引言 防火墙技术是建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,越来越多地应用于专用网络与公用网络的互连环境之中,尤以Internet网络为最甚.Internet的迅猛发展,使得防火墙产品在短短的几年内异军突起,很快形成了一个产业:1995年,刚刚面市的防火墙技术产品市场量还不到1万套;到1996年底,就猛增到10万套;据国际权威商业调查机构的预测,防火墙市场将以173%的复合增长率增长,今年底将达到150万套,市场营业额将从1995年的1.6亿美元上升到今年的9.8亿美

WindowsNT技术简介

  Windows NT 技术简介 NT:New Technoly(新技术,因比DOS.WIN9X采用了很多新技术而得名) Windows NT基本介绍 WindowsNT是Microsoft推出的面向工作站.网络服务器和大型计算机的网络操作系统,也可做PC操作系统. 它与通信服务紧密集成,提供文件和打印服务,能运行客户机/服务器应用程序,内置了Internet/Intranet功能,已逐渐成为企业组网的标准平台. Windows NT引入的新概念 1. NTFS(Windows NT File