<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="比较HttpModule和Http Handler 实现图片防盗链、图片验证码、处理自定义后缀名请求" id="card1">
<p> 游客</p><p>
标题:比较HttpModule和Http Handler 实现图片防盗链、图片验证码、处理自定义后缀名请求<br/>
正文:<br/>
 HttpModule概述 暂时先不考虑我们自己实现Http Module的情况。在.Net中，Http Module 是实现了IHttpModule接口的程序集。IHttpModule 接口本身并没有什么好大写特写的，由它的名字可以看出，它不过是一个普普通通的接口而已。实际上，我们关心的是实现了这些接口的类，如果我们也编写代码实现了这个接口，那么有什么用途。一般来说，我们可以将Asp.Net中的事件分成三个级别，最顶层是 应用程序级事件、其次是页面级事件、最下面是控件级事件，事件的触发分别与 应用程序周期、页面周期、控件周期紧密相关。而 Http Module 的作用是与应用程序事件 密切相关的。我们通过Http Module在Http请求管道(Pipeline)中注册期望对应用程序事件做出反应的方法，在相应的事件触发的时候(比如说BeginRequest事件，它在应用程序收到一个Http请求并即将对其进行处理时触发)，便会调用Http Module注册了的方法，实际的工作在这些方法中执行。.Net 本身已经有很多的Http Module，其中包括 表单验证Module(FormsAuthenticationModule)， Session 状态Module(SessionStateModule)，输出缓存Module (OutputCacheModule)等。注册 Http Module在注册我们自己编写的 Http Module 之前，先来看看Asp.Net中已经有的HttpModule。与 Http Handler类似，我们需要打开机器上C:\WINDOWS\Microsoft.NET\Framework\ v2.0.50727\CONFIG 目录下的 web.config 文件。找到 &amp;lt;httpModules/&amp;gt; 结点，应该可以看到下面的内容：&amp;lt;httpModules&amp;gt;<br/>    &amp;lt;add name=&amp;quot;OutputCache&amp;quot; type=&amp;quot;System.Web.Caching.OutputCacheModule&amp;quot; /&amp;gt;<br/>    &amp;lt;add name=&amp;quot;Session&amp;quot<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=109&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=109&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=109&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=109&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=109&amp;Page=34">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=109">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=109">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>