如何使用 Visual C# .NET 创建 ASP.NET HTTP 模块
实现模块
1. | 新建一个名为 MyModule 的 Visual Studio .NET C# 类库项目。 | ||||||||||||||||||||||||||||
2. | 设置一个对 System.Web.dll 程序集的引用。 | ||||||||||||||||||||||||||||
3. | 将以下指令添加到该类中:
|
||||||||||||||||||||||||||||
4. | 重命名 SyncModule.cs 类,然后相应地更改类定义。 | ||||||||||||||||||||||||||||
5. | 实现 IHttpModule 接口。您的类定义应如下所示:
|
||||||||||||||||||||||||||||
6. | 决定要预订哪些事件。下表概括了可从 HttpApplication 对象预订的事件:
|
||||||||||||||||||||||||||||
7. | 按以下方式实现 IHttpModule 接口的 Init 和 Dispose 方法:
|
||||||||||||||||||||||||||||
8. | 按以下方式为事件创建一个委托:
|
||||||||||||||||||||||||||||
9. | 定义一个 MyEventHandler 类型的私有局部变量以记录对该事件的引用:
|
||||||||||||||||||||||||||||
10. | 创建一个事件将该委托挂接到 Global.asax 文件中的方法或从 HttpApplication 对象继承的类:
|
||||||||||||||||||||||||||||
11. | 创建 OnBeginRequest 方法,该方法挂接到 HttpApplication 的 BeginRequest 事件:
|
||||||||||||||||||||||||||||
12. | 编译该项目。 |
部署模块
1. | 在 C:\Inetpub\Wwwroot 下新建一个名为 Module 的目录。 | ||||||||
2. | 在新创建的 Module 目录下创建一个名为 Bin 的子目录。这样,其路径为 C:\Inetpub\Wwwroot\Module\Bin。 | ||||||||
3. | 将 MyModule.dll 从项目的 Bin\Debug 目录复制到 C:\Inetpub\Wwwroot\Module\Bin 目录。 | ||||||||
4. | 按照下列步骤将新的 Module 目录标记为一个 Web 应用程序:
|
配置系统
1. | 在 C:\Inetpub\Wwwroot\Module\ 目录下,新建一个名为 Web.config 的文件。 |
2. | 将以下文本粘贴到 Web.config 文件中:
|
测试模块
1. | 在 C:\Inetpub\Wwwroot\Module 目录下,新建一个名为 Test.aspx 的 .aspx 文件。 |
2. | 将以下文本粘贴到 Test.aspx 文件中:
|
3. | 在 C:\Inetpub\Wwwroot\Module 目录下,创建一个 Global.asax 文件。 |
4. | 将以下代码粘贴到 Global.asax 文件中: |
5. | 请求 Test.aspx 页。应该会看到以下文本行:
|
-----------------------------------------------------------------