在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"/>
希望对你有用。