自定义 HTTP 模块
2013-07-24 18:25
253 查看
在响应下面两个事件时调用该模块:BeginRequest 事件和 EndRequest 事件。这使该模块可以在处理页请求之前和之后运行。在这种情况下,该模块向请求的
ASP.NET 网页的任一 HTTP 请求开头处添加一条消息,并在处理请求后添加另一条消息。
public class HelloWorldModule : IHttpModule
{
public HelloWorldModule()
{
}
public String ModuleName
{
get { return "HelloWorldModule"; }
}
public void Init(HttpApplication application)
{
application.BeginRequest +=
(new EventHandler(this.Application_BeginRequest));
application.EndRequest +=
(new EventHandler(this.Application_EndRequest));
}
private void Application_BeginRequest(Object source,
EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("<h1><font color=red>
HelloWorldModule: Beginning of Request
</font></h1><hr>");
}
private void Application_EndRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("<hr><h1><font color=red>
HelloWorldModule: End of Request</font></h1>");
}
public void Dispose()
{
}
}
在创建完 HelloWorldModule 类后,可以通过在 Web.config 文件中创建一项来注册该模块。
如果网站还没有 Web.config 文件,请在该站点的根目录下创建一个这样的文件。
将下面突出显示的代码添加到该 Web.config 文件中:<configuration>
<system.web>
<httpModules> <add name="HelloWorldModule" type="HelloWorldModule"/> </httpModules>
</system.web>
</configuration>
这段代码用 HelloWorldModule 的类名和模块名注册该模块。
创建并注册完自定义 HTTP 模块后,可以对它进行测试。
在应用程序中创建一个 Default.aspx 页。
在浏览器中请求该 Default.aspx 页。
HTTP 模块会将一个字符串追加到响应的开头和结尾。在请求扩展名指定为 ASP.NET 类型的文件时,该模块将会自动运行。
ASP.NET 网页的任一 HTTP 请求开头处添加一条消息,并在处理请求后添加另一条消息。
public class HelloWorldModule : IHttpModule
{
public HelloWorldModule()
{
}
public String ModuleName
{
get { return "HelloWorldModule"; }
}
public void Init(HttpApplication application)
{
application.BeginRequest +=
(new EventHandler(this.Application_BeginRequest));
application.EndRequest +=
(new EventHandler(this.Application_EndRequest));
}
private void Application_BeginRequest(Object source,
EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("<h1><font color=red>
HelloWorldModule: Beginning of Request
</font></h1><hr>");
}
private void Application_EndRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("<hr><h1><font color=red>
HelloWorldModule: End of Request</font></h1>");
}
public void Dispose()
{
}
}
注册 HTTP 模块
在创建完 HelloWorldModule 类后,可以通过在 Web.config 文件中创建一项来注册该模块。
在 Web.config 文件中注册该模块
如果网站还没有 Web.config 文件,请在该站点的根目录下创建一个这样的文件。将下面突出显示的代码添加到该 Web.config 文件中:<configuration>
<system.web>
<httpModules> <add name="HelloWorldModule" type="HelloWorldModule"/> </httpModules>
</system.web>
</configuration>
这段代码用 HelloWorldModule 的类名和模块名注册该模块。
测试自定义 HTTP 模块
创建并注册完自定义 HTTP 模块后,可以对它进行测试。
测试自定义 HTTP 模块
在应用程序中创建一个 Default.aspx 页。在浏览器中请求该 Default.aspx 页。
HTTP 模块会将一个字符串追加到响应的开头和结尾。在请求扩展名指定为 ASP.NET 类型的文件时,该模块将会自动运行。
相关文章推荐
- 创建自定义 HTTP 模块类
- 实践:创建自定义 HTTP 模块
- 创建自定义 HTTP 模块
- 自定义HttpFilter模块完善
- 自定义HttpFilter模块完善
- 演练:创建和注册自定义 HTTP 模块
- 创建自定义 HTTP 模块类
- 创建和注册自定义 httpModules 模块
- 如何:创建自定义 HTTP 模块
- nginx版本变化引起的自定义http模块的运行异常
- 编写自定义 HTTP 模块
- 演练:创建和注册自定义 HTTP 模块
- 利用 IHttpModule 自定义 HTTP 处理模块
- 创建和注册自定义 HTTP 模块(IIS)(转)
- C#自定义HttpFilter模块完善实例
- 读书片断之 开发自定义HTTP模块
- HTTP代理模块(HTTP Proxy)
- Nginx基础. 开发HTTP过滤模块
- Nginx学习(五)nginx模块之nginx-http-footer-filter研究使用
- nginx的http模块开发(直接发送html文件方式)