Custom HttpModule Example
.NET Framework 1.1
The following custom module simply returns a Web page message at the beginning of any HTTP request and another after the request has been processed. The Init function below registers event handlers for two HttpApplication events, BeginRequest and EndRequest. Each handler is written as a private method of the module. When the registered events are raised, ASP.NET calls the appropriate handler method, which writes a Web page and returns.
using System; using System.Web; using System.Collections; public class HelloWorldModule : IHttpModule { public String ModuleName { get { return "HelloWorldModule"; } } // In the Init function, register for HttpApplication // events by adding your handlers. public void Init(HttpApplication application) { application.BeginRequest += (new EventHandler(this.Application_BeginRequest)); application.EndRequest += (new EventHandler(this.Application_EndRequest)); } // Your BeginRequest event handler. private void Application_BeginRequest(Object source, EventArgs e) { HttpApplication application = (HttpApplication)source; HttpContext context = application.Context; context.Response.Write("<h1><font color=red>HelloWorldModule: Beginning of Request</font></h1><hr>"); } // Your EndRequest event handler. private void Application_EndRequest(Object source, EventArgs e) { HttpApplication application = (HttpApplication)source; HttpContext context = application.Context; context.Response.Write("<hr><h1><font color=red>HelloWorldModule: End of Request</font></h1>"); } public void Dispose() { } } [Visual Basic] Imports System Imports System.Web Imports System.Collections Public Class HelloWorldModule Implements IHttpModule Public ReadOnly Property ModuleName() As [String] Get Return "HelloWorldModule" End Get End Property ' In the Init function, register for HttpApplication ' events by adding your handlers. Public Sub Init(ByVal application As HttpApplication) Implements IHttpModule.Init AddHandler application.BeginRequest, AddressOf Me.Application_BeginRequest AddHandler application.EndRequest, AddressOf Me.Application_EndRequest End Sub ' Your BeginRequest event handler. Private Sub Application_BeginRequest(ByVal [source] As [Object], ByVal e As EventArgs) Dim application As HttpApplication = CType([source], HttpApplication) Dim context As HttpContext = application.Context context.Response.Write("<h1><font color=red>HelloWorldModule: Beginning of Request</font></h1><hr>") End Sub ' Your EndRequest event handler. Private Sub Application_EndRequest(ByVal [source] As [Object], ByVal e As EventArgs) Dim application As HttpApplication = CType([source], HttpApplication) Dim context As HttpContext = application.Context context.Response.Write("<hr><h1><font color=red>HelloWorldModule: End of Request</font></h1>") End Sub Public Sub Dispose() Implements IHttpModule.Dispose End Sub End Class
Register the module as follows:
<configuration>
<system.web>
<httpModules>
<!-- <add name="HelloWorldModule"
type="HelloWorldModule, HelloWorldModule" /> -->
</httpModules>
</system.web>
</configuration>
See Also
HTTP Runtime Support | HttpModules | Handling Public Events | Handling and Raising Events