自定义处理页面请求
2005-04-21 03:02
375 查看
主要是继承IHttpModule和IHttpHandler来重写其 中的方法,IhttpModule 中重写其Init方法及各种请示过程事件和Dispose方法
using System.Web;
using System;
namespace CustomerHttpModules
{
/**//// <summary>
/// Class1 的摘要说明。
/// </summary>
public class MyHttpModules:IHttpModule
{
public MyHttpModules()
{
}
IHttpModule 成员#region IHttpModule 成员
void System.Web.IHttpModule.Init(HttpApplication context)
{
context.BeginRequest+=new EventHandler(context_BeginRequest);
context.EndRequest += new EventHandler(this.context_EndRequest);
}
public void context_BeginRequest(object obj,System.EventArgs e)
{
HttpApplication app = (HttpApplication)obj;
app.Response.Write("Hi,testing customer http module request");
}
public void context_EndRequest(object obj,System.EventArgs e)
{
HttpApplication app=(HttpApplication)obj;
app.Response.Write("Hi,end request here");
}
public void Dispose()
{
// TODO: 添加 MyHttpModules.Dispose 实现
}
#endregion
}
}
然后生成dll,新建个asp.net应用,引用此dll,在web.config中加入
<httpModules>
<add name="test" type="CustomerHttpModules.MyHttpModules,CustomerHttpModules"/>
</httpModules>
则当有页面请求时会查找到此dll,然后执行其中过程。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下为重写IHttpHandler中方法的代码:
同样地建个类库
using System;
using System.Web;
namespace CustomerHttpHandler
{
/**//// <summary>
/// Class1 的摘要说明。
/// </summary>
public class TestCustomerHttpHandler:IHttpHandler
{
public TestCustomerHttpHandler()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
IHttpHandler 成员#region IHttpHandler 成员
public void ProcessRequest(HttpContext context)
{
context.Response.Write("hi,I write something instead of what you input");
}
public bool IsReusable
{
get
{
// TODO: 添加 TestCustomerHttpHandler.IsReusable getter 实现
return true;
}
}
#endregion
}
}
所有页面请示的核心处理都是通过IHttpHandler的ProcessRequest方法来完成,因此只要我们重写此方法,则无论页面有任何请求,都会被我们所重写的内容代替掉。嘿嘿
生成dll后再在asp.net应用中的 web.config 中加入
<httpHandlers>
<add verb="*" path="*" type="CustomerHttpModules.MyHttpModules,CustomerHttpModules"/>
</httpHandlers>
看看效果吧
using System.Web;
using System;
namespace CustomerHttpModules
{
/**//// <summary>
/// Class1 的摘要说明。
/// </summary>
public class MyHttpModules:IHttpModule
{
public MyHttpModules()
{
}
IHttpModule 成员#region IHttpModule 成员
void System.Web.IHttpModule.Init(HttpApplication context)
{
context.BeginRequest+=new EventHandler(context_BeginRequest);
context.EndRequest += new EventHandler(this.context_EndRequest);
}
public void context_BeginRequest(object obj,System.EventArgs e)
{
HttpApplication app = (HttpApplication)obj;
app.Response.Write("Hi,testing customer http module request");
}
public void context_EndRequest(object obj,System.EventArgs e)
{
HttpApplication app=(HttpApplication)obj;
app.Response.Write("Hi,end request here");
}
public void Dispose()
{
// TODO: 添加 MyHttpModules.Dispose 实现
}
#endregion
}
}
然后生成dll,新建个asp.net应用,引用此dll,在web.config中加入
<httpModules>
<add name="test" type="CustomerHttpModules.MyHttpModules,CustomerHttpModules"/>
</httpModules>
则当有页面请求时会查找到此dll,然后执行其中过程。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下为重写IHttpHandler中方法的代码:
同样地建个类库
using System;
using System.Web;
namespace CustomerHttpHandler
{
/**//// <summary>
/// Class1 的摘要说明。
/// </summary>
public class TestCustomerHttpHandler:IHttpHandler
{
public TestCustomerHttpHandler()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
IHttpHandler 成员#region IHttpHandler 成员
public void ProcessRequest(HttpContext context)
{
context.Response.Write("hi,I write something instead of what you input");
}
public bool IsReusable
{
get
{
// TODO: 添加 TestCustomerHttpHandler.IsReusable getter 实现
return true;
}
}
#endregion
}
}
所有页面请示的核心处理都是通过IHttpHandler的ProcessRequest方法来完成,因此只要我们重写此方法,则无论页面有任何请求,都会被我们所重写的内容代替掉。嘿嘿
生成dll后再在asp.net应用中的 web.config 中加入
<httpHandlers>
<add verb="*" path="*" type="CustomerHttpModules.MyHttpModules,CustomerHttpModules"/>
</httpHandlers>
看看效果吧
相关文章推荐
- 自定义处理页面请求
- 自定义处理页面请求
- 自定义处理页面请求
- 处理【由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面】
- JSP 404 ErrorPage 自定义页面处理
- 处理【由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面】
- ASP.NET页面运行机制以及请求处理流程
- jquery ajax 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
- HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射
- IIS虚拟目录内的视频文件访问出错:HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
- ASP.NET页面请求处理
- 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。
- ASP.NET自定义错误处理页面的添加
- 解决问题:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
- iOS开发之仿微博视频边下边播之自定义AVPlayer播放器, 边下边播解剖。视频处理流程,建立连接-请求数据-统筹数据-解码数据-视频呈现
- 为解决ASP.NET MVC(CTP)中URL“页面请求”和“单纯逻辑处理请求”混淆问题,提供一条思路
- asp.net中自定义错误处理页面
- SharePoint 自定义列表编辑页面,附件上传提示“此表单自定义为不处理附件”
- windows2008下配置iis时出现错误“由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。”
- LAMP架构客户端请求PHP(带有mysql)页面处理的流程