HttpModule

Refer:Introduction to HTTP Modules

 

  一个HTTP module是一个ASP.NET程序每次处理请求的时候都会调用的一个程序集。HTTP模块是ASP.NET请求管道的一部分,在整个请求过程中,调用一些列的生命周期事件。利用HTTP Module,可以检查传入的请求;或者基于传入的请求,再添加一些自定义的行为;或者检查响应,并且修改响应。

 

  ASP.NET HTTP 模块类似于ISAPI的过滤器,在每次请求的时候它们都会运行。Http module是用托管代码写的,它们和ASP.NET应用程序的生命周期完全集成。

 

Http Module的典型应用:

安全认证

  可以利用HTTP模块,在被请求的页面,XML Web service或者handler被调用之前,来检查该传入的请求,并且执行自定义的认证方式或者安全校验。

数据统计和记录日志

  因为每次请求都会调用HTTP Module,所以我们可以定义一个HTTP Module来执行请求次数的统计或者记录日志

自定义header 和footer

  因为可以利用HTTP Module来修改响应内容,所以可以对页面或者XML Web Service的响应注入一些自定义的信息

 

  HTTP Module 注册在Web.config文件中,第一个请求到达服务器时,ASP.NET会构造一个HttpApplication类实例来表示当前应用程序,然后会构造所有在Web.config中注册的HTTP Module的实例,然后每个Module 的Init方法会被调用。在Init 方法里面可以挂载一些生命周期事件,来实现我们自定义的行为。

 

  

  

  Global.asax里面也定义了生命周期事件,所以我们也可以把自定义功能写在Global.asax中。如果把Global.asax的程序集放到GAC,并且配置在Machine.config中,就可以让它被许多不同的ASP.NET应用程序来重用。

 

 创建一个HTTP Module的步骤

   定义一个类,实现 IHttpModule 接口

  

  在Web.config的<system.web>节点下,配置创建好的HTTP Module

  

转载于:https://www.cnblogs.com/SuuuperPig/p/3592385.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值