惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
B
Blog
博客园 - Franky
I
InfoQ
A
About on SuperTechFans
博客园_首页
L
LangChain Blog
量子位
腾讯CDC
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
美团技术团队
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
雷峰网
雷峰网
MongoDB | Blog
MongoDB | Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
G
Google Developers Blog
Last Week in AI
Last Week in AI

博客园 - nerozhang

NHibernate小结(一) 数据库字符串处理 数据库中的字符串操作 通过查询语句链接到远程数据库 得到数据库表的结构 从两张表中取出不一致的数据 NHibernate Quick Start Guide 唐诗赏析--唐诗的起源,发展 PetShop 4.0的缓存处理 AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和PetShop4 的缓存示例 在global.asax中实现URL重写(应用) Community Starter Kit - 结构 Community Starter Kit - 功能介绍 Community Starter Kit -简介 Petshop 4.0学习-MasterPage.master文件 PetShop 4.0学习-数据访问层之数据库访问设计 PetShop 4.0学习--登录以及注册功能的分析 PetShop 4.0学习--体系架构 PetShop 4.0学习--业务功能介绍
自定义 HttpModule 示例
nerozhang · 2007-08-19 · via 博客园 - nerozhang

   下面的自定义模块只是在任何 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