知识大全 ASP.NET管道(2)

Posted 事件

篇首语:人生不是一种享乐,而是一桩十分沉重的工作。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET管道(2)相关的知识,希望对你有一定的参考价值。

ASP.NET MVC 4框架揭秘:ASP.NET管道(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     ASP NET管道( )

  对于一个ASP NET应用来说 HttpApplication派生于Global asax文件 我们可以通过创建global asax文件对HttpApplication的请求处理行为进行定制 Global asax采用一种很直接的方式实现了这样的功能 这种方式不是我们常用的方法重写或事件注册 而是直接采用方法名匹配 在Global asax中 我们按照 Application_Event Name 这样的方法命名规则进行事件注册 比如Application_BeginRequest方法用于处理HttpApplication的BeginRequest事件 如果通过VS创建一个Global asax文件 将采用如下的默认定义

  <%@ Application Language= C# %>

  <script runat= server >

  void Application_Start(object sender EventArgs e)

  void Application_End(object sender EventArgs e)

  void Application_Error(object sender EventArgs e)

  void Session_Start(object sender EventArgs e)

  void Session_End(object sender EventArgs e)

  </script>

  HttpModule

  ASP NET拥有一个具有高度可扩展性的引擎 并且能够处理对于不同资源类型的请求 那么是什么成就了ASP NET的高可扩展性呢? HttpModule功不可没

  当请求转入ASP NET管道时 最终负责处理该请求的是与请求资源类型相匹配的HttpHandler对象 但是在Handler正式工作之前 ASP NET会先加载并初始化所有配置的HttpModule对象 HttpModule在初始化的过程中 会将一些功能注册到HttpApplication相应的事件中 在HttpApplication请求处理生命周期中的某个阶段 相应的事件会被触发 通过HttpModule注册的事件处理程序也得以执行

  所有的HttpModule都实现了具有如下定义的System Web IHttpModule接口 其中Init方法用于实现HttpModule自身的初始化 该方法接受一个HttpApplication对象 有了这个对象 事件注册就很容易了

  public interface IHttpModule

  

  void Dispose()

  void Init(HttpApplication context)

  

  ASP NET提供的很多基础功能都是通过相应的HttpModule实现的 下面列出了一些典型的HttpModule

  OutputCacheModule 实现了输出缓存(Output Caching)的功能

  SessionStateModule 在无状态的HTTP协议上实现了基于会话(Session)的状态

  WindowsAuthenticationModule+FormsAuthenticationModule+PassportAuthentication Module 实现了Windows Forms和Passport这 种典型的身份认证方式

  UrlAuthorizationModule + FileAuthorizationModule 实现了基于URI和文件ACL(Access Control List)的授权

  除了这些系统定义的HttpModule之外 我们还可以自定义HttpModule 通过Web config可以很容易地将其注册到Web应用中

  HttpHandler

  对于不同资源类型的请求 ASP NET会加载不同的Handler来处理 也就是说 aspx 页面与 asmx web 服务对应的Handler是不同的 所有的HttpHandler都实现了具有如下定义的接口System Web IHttpHandler 方法ProcessRequest提供了处理请求的实现

  public interface IHttpHandler

  

  void ProcessRequest(HttpContext context)

  bool IsReusable get;

  

  某些HttpHandler具有一个与之相关的HttpHandlerFactory 它实现了具有如下定义的接口System Web IHttpHandlerFactory 方法GetHandler用于创建新的HttpHandler 或者获取已经存在的HttpHandler

  public interface IHttpHandlerFactory

  

  IHttpHandler GetHandler(HttpContext context string requestType

  string url string pathTranslated)

  void ReleaseHandler(IHttpHandler handler)

  

       返回目录 ASP NET MVC 框架揭秘

       编辑推荐

       ASP NET开发培训视频教程

       Microsoft NET框架程序设计视频教程

       Java程序性能优化 让你的Java程序更快 更稳定

cha138/Article/program/net/201311/16116

相关参考

知识大全 ASP.NET管道(3)

ASP.NETMVC4框架揭秘:ASP.NET管道(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 ASP.NET性能提升秘诀之管道与进程优化

ASP.NET性能提升秘诀之管道与进程优化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASP

知识大全 再谈IIS与ASP.NET管道的理解

再谈IIS与ASP.NET管道的理解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在年月份我曾

知识大全 ASP.NET入门教程 10.5.3 ASP.NET 2.0的新特性[2]

ASP.NET入门教程10.5.3ASP.NET2.0的新特性[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 如何由ASP.NET 1.1移植到ASP.NET 2.0

如何由ASP.NET1.1移植到ASP.NET2.0  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET入门教程 7.2 ASP.NET 2.0的数据控件

ASP.NET入门教程7.2ASP.NET2.0的数据控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 ASP.NET入门教程 10.5.3 ASP.NET 2.0的新特性[1]

ASP.NET入门教程10.5.3ASP.NET2.0的新特性[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 ASP.NET开发要抛弃ASP旧习和破烂[2]

ASP.NET开发要抛弃ASP旧习和破烂[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对

知识大全 从.NET类库代码来看ASP.NET运行时[2]

从.NET类库代码来看ASP.NET运行时[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n

知识大全 ASP.NET之数据绑定2

ASP.NET之数据绑定2  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &