Asp.net中的HttpModule和HttpHandler的简单用法

在Asp.net中,HttpModule和HttpHandler均可以截取IIS消息进行处理,这使得我们制作人员能够非常方便的进行诸如图片水印添加,图片盗链检查等功能。

下面先就HttpModule的使用方法进行简单说明:

using System;using System.Web;

namespace MyWebApp{    public class MyHttpModule:IHttpModule    {        public void Init(HttpApplication application)        {            application.BeginRequest+=new EventHandler(application_BeginRequest);        }

        public void application_BeginRequest(object sender, EventArgs e)        {            HttpContext context = (sender as HttpApplication).Context;            context.Response.Write("这一部分是由HttpModule添加!<br><script>alert(‘测试脚本标签‘)</script>");        }

        #region IHttpModule 成员

        void IHttpModule.Dispose()        {            throw new NotImplementedException();        }

        #endregion    }}

需要说明的是,使用HttpModule的时候需要继承自IHttpModule接口,然后需要实现Dispose成员。需要注意一点的是,这些操作还得在web.config中进行配置,才能够正常使用:

      <!--下面这里是添加的自定义的HTTPModule-->      <add name="MyHttpModule" type="MyWebApp.MyHttpModule"/>

而对于HttpHandler,则需要继承自IHttpHandler接口,并且也需要在web.config中进行注册:

using System.Web;using System.Web.Services;

namespace MyWebApp{    /// <summary>    /// $codebehindclassname$ 的摘要说明    /// </summary>    [WebService(Namespace = "http://tempuri.org/")]    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    public class MyHttpHandler : IHttpHandler    {

        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/plain";            context.Response.Write("这一部分是由HttpHandler添加!");        }

        public bool IsReusable        {            get            {                return false;            }        }    }}

在web.config中的注册如下:

      <!--下面是添加的自定义HTTPHandler-->        <add verb="*" path="*.aspx" type="MyWebApp.MyHttpHandler"/>

希望对你有用。

时间: 2024-08-05 14:04:54

Asp.net中的HttpModule和HttpHandler的简单用法的相关文章

ASP.NET中,HiddenField隐藏控件的用法

HiddenField控件就是隐藏输入框的服务器控件,他能让你保存那些不必显示在页面上的且对安全性需求不高的数据.也许这个时候应该有这么一个疑问,为什么有了ViewState.Session和Cookie等状态保存机制,还需要用起HiddenField呢? 增加HiddenField,其实是为了让整个状态管理机制的应用程度更加全方面.因为不管是ViewState.Cookie还是Session,都有其失效的时候,比如用户因某种需求设置ViewState为false,或环境条件限制使用Cookie

Java中UDP协议的基本原理和简单用法

UDP协议是非面向连接的,相对于TCP协议效率较高,但是不安全.UDP协议类似发信息的过程,不管接收方是在线还是关机状态,都会把信息发送出去.但是如果接收方不处于接收信息的状态,发送出去的数据包就会丢失. convert()方法是用来转换字节数组和基本类型. /** * 创建基于udp协议的服务接受端 * @author wxisme * */ public class MyServer { public static void main(String[] args) throws IOExce

asp.net中实现文件下载功能

//TransmitFile实现下载 protected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite 下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题. 代码如下: */ Response.ContentType = "application/x-zip-compressed&quo

asp.net HttpModule和HttpHandler

ASP.Net处理Http Request时,使用Pipeline(管道)方式,由各个HttpModule对请求进行处理,然后到达 HttpHandler,HttpHandler处理完之后,仍经过Pipeline中各个HttpModule的处理,最后将HTML发送到客户端浏览 器中.HttpModule会在页面处理前和后对页面进行处理,所以它不会影响真正的页面请求.通常用在给每个页面的头部或者尾部添加一些信息(如版 权声明)等.IHttpModule与IHttpHandler的区别整理1.先后次

ASP.Net中自定义Http处理及应用之HttpModule篇

HttpHandler实现了类似于ISAPI Extention的功能,他处理请求(Request)的信息和发送响应(Response).HttpHandler功能的实现通过实现IHttpHandler接口来达到.而HttpModule实现了类似于ISAPI Filter的功能. HttpModule的实现 HttpModules实现了类似于ISAPI Filter的功能,在开发上,通常需要经过以下步骤: 1.编写一个类,实现IhttpModule接口 2.实现Init 方法,并且注册需要的方法

ASP.NET-自定义HttpModule与HttpHandler

在之前的ASP.NET是如何在IIS下工作的这篇文章中介绍了ASP.NET与IIS配合工作的机制,在http请求经过一系列处理后,最后到达ASP.NET管道中,这时,就是Http Modules和HttpHandler出场的时候了. 再来摆出管道工作时序图来一看: HttpModule HttpModule是类似于过滤器的作用,可以没有,也可以有任意个,每一个都可以订阅管道事件中的任意个事件,在每个订阅的事件中可自定义功能实现. HttpModule是实现IHttpModule接口的类.接口如下

ASP.NET-自定义HttpModule与HttpHandler介绍

在之前的ASP.NET是如何在IIS下工作的这篇文章中介绍了ASP.NET与IIS配合工作的机制,在http请求经过一系列处理后,最后到达ASP.NET管道中,这时,就是Http Modules和HttpHandler出场的时候了.一看: HttpModule HttpModule是类似于过滤器的作用,可以没有,也可以有任意个,每一个都可以订阅管道事件中的任意个事件,在每个订阅的事件中可自定义功能实现. HttpModule是实现IHttpModule接口的类.接口如下: public inte

关于asp.net mvc中的httpModules 与 httpHandler

ASP.NET对请求处理的过程: 当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会通过http管道(Http PipeLine)将请求发送给ASPNET_WP.exe进程,在ASPNET_WP.exe进程中通过HttpRuntime来处理这个请求,处理完毕将结果返回客户端. inetinfo.exe进程:是www服务的进程,IIS服务和ASPNET

asp.net HttpModule与HttpHandler区别

一,什么是HttpHandler 在asp.net的网站中,在一个普通的请求地址"http://localhost:56093/Default.aspx"中"Default.aspx"就是handler. 也就是说在asp.net中page就是handler,在asp.net MVC中Controller就是handler,handler就是最终处理请求的那个类. 假如http://localhost:56093/Default.aspx这个页面输出的是"