下面的自定义模块只是在任何 HTTP 请求的开头返回一个 Web 页消息和并在处理完该请求后返回另一个 Web 页消息。下面的 Init 函数为两个 HttpApplication 事件 BeginRequest EndRequest 注册事件处理程序。每个事件处理程序都编写为模块的私有方法。当已注册的事件被引发时,ASP.NET 将调用适当的处理程序方法,该方法写一个 Web 页然后返回。

[C#]

 1 using System;
 2 using System.Web; 
 3 using System.Collections;
 4 
 5 public class HelloWorldModule : IHttpModule {
 6     public String ModuleName { 
 7         get { return "HelloWorldModule"; } 
 8     }    
 9     
10     // In the Init function, register for HttpApplication 
11     // events by adding your handlers.
12     public void Init(HttpApplication application) {
13         application.BeginRequest += (new EventHandler(this.Application_BeginRequest));
14         application.EndRequest += (new EventHandler(this.Application_EndRequest));
15     }
16     
17     // Your BeginRequest event handler.
18     private void Application_BeginRequest(Object source, EventArgs e) {
19         HttpApplication application = (HttpApplication)source;
20         HttpContext context = application.Context;
21         context.Response.Write("<h1><font color=red>HelloWorldModule: Beginning of Request</font></h1><hr>");
22     }
23     
24     // Your EndRequest event handler.
25     private void Application_EndRequest(Object source, EventArgs e) {
26         HttpApplication application = (HttpApplication)source;
27         HttpContext context = application.Context;
28         context.Response.Write("<hr><h1><font color=red>HelloWorldModule: End of Request</font></h1>");
29     }        
30     
31     public void Dispose() 
32     {
33     }
34 }




[Visual Basic]

 1 Imports System
 2 Imports System.Web
 3 Imports System.Collections
 4 
 5 Public Class HelloWorldModule
 6     Implements IHttpModule
 7 
 8     Public ReadOnly Property ModuleName() As [String]
 9         Get
10             Return "HelloWorldModule"
11         End Get
12     End Property
13 
14     ' In the Init function, register for HttpApplication 
15     ' events by adding your handlers.
16     Public Sub Init(ByVal application As HttpApplication) Implements IHttpModule.Init
17         AddHandler application.BeginRequest, AddressOf Me.Application_BeginRequest
18         AddHandler application.EndRequest, AddressOf Me.Application_EndRequest
19     End Sub
20 
21     ' Your BeginRequest event handler.
22     Private Sub Application_BeginRequest(ByVal [source] As [Object], ByVal e As EventArgs)
23         Dim application As HttpApplication = CType([source], HttpApplication)
24         Dim context As HttpContext = application.Context
25         context.Response.Write("<h1><font color=red>HelloWorldModule: Beginning of Request</font></h1><hr>")
26     End Sub
27 
28     ' Your EndRequest event handler.
29     Private Sub Application_EndRequest(ByVal [source] As [Object], ByVal e As EventArgs)
30         Dim application As HttpApplication = CType([source], HttpApplication)
31         Dim context As HttpContext = application.Context
32         context.Response.Write("<hr><h1><font color=red>HelloWorldModule: End of Request</font></h1>")
33     End Sub
34 
35     Public Sub Dispose() Implements IHttpModule.Dispose
36     End Sub
37 End Class
38 

如下所示注册该模块:

1 <configuration>
2     <system.web>
3         <httpModules>
4             <!-- <add name="HelloWorldModule" 
5                       type="HelloWorldModule, HelloWorldModule" /> -->
6         </httpModules>
7     </system.web>
8 </configuration>
9 

posted on 2007-08-19 15:22  nerozhang  阅读(668)  评论(0编辑  收藏  举报