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

推荐订阅源

The Cloudflare Blog
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
罗磊的独立博客
博客园 - 聂微东
博客园_首页
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
量子位
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
月光博客
月光博客
T
The Exploit Database - CXSecurity.com
Google DeepMind News
Google DeepMind News
H
Help Net Security
O
OpenAI News
Blog — PlanetScale
Blog — PlanetScale
S
Security Affairs
S
Security @ Cisco Blogs
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
AI
AI
MongoDB | Blog
MongoDB | Blog
G
Google Developers Blog
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
Cloudbric
Cloudbric
H
Heimdal Security Blog
J
Java Code Geeks
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
I
Intezer
GbyAI
GbyAI

博客园 - 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