下面的自定义模块只是在任何 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 }
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
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
2 <system.web>
3 <httpModules>
4 <!-- <add name="HelloWorldModule"
5 type="HelloWorldModule, HelloWorldModule" /> -->
6 </httpModules>
7 </system.web>
8 </configuration>
9