许明会的计算机技术主页

Language:C,C++,.NET Framework(C#)
Thinking:Design Pattern,Algorithm,WPF,Windows Internals
Database:SQLServer,Oracle,MySQL,PostSQL
IT:MCITP,Exchange,Lync,Virtualization,CCNP

导航

HttpModule,ASP.NET中多个HttpModule的处理


using System;
using System.Web;

namespace xumh
{
    
/// <summary>
    
/// 多个HttpModule的应用示例:
    
/// web.config文件中HttpModules里面先Add哪一个他就先执行,按add的顺序分别执行
    
/// 多个HttpModule要过滤的事件会分别处理
    
/// </summary>
    public class multiHttpModule : IHttpModule
    {
        
public void Dispose()
        {
            
throw new NotImplementedException();
        }

        
public void Init(HttpApplication context)
        {
//重新定义ASP.NET的事件处理程序
            context.BeginRequest += new EventHandler(myBeginRequest);
            context.EndRequest 
+= new EventHandler(myEndRequest);
            context.PreRequestHandlerExecute 
+= new EventHandler(myPreRequestHandlerExecute);
            context.PostRequestHandlerExecute 
+= new EventHandler(myPostRequestHandlerExecute);
            context.ReleaseRequestState 
+= new EventHandler(myReleaseRequestState);
            context.AcquireRequestState 
+= new EventHandler(myAcquireRequestState);
            context.AuthenticateRequest 
+= new EventHandler(myAuthenticateRequest);
            context.AuthorizeRequest 
+= new EventHandler(myAuthorizeRequest);
            context.ResolveRequestCache 
+= new EventHandler(myResolveRequestCache);
            context.PreSendRequestHeaders 
+= new EventHandler(myPreSendRequestHeaders);
            context.PreSendRequestContent 
+= new EventHandler(myPreSendRequestContent);
        
        }

        
void myPreSendRequestContent(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"myPreSendRequestContent<br/>");
        }

        
void myPreSendRequestHeaders(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"myPreSendRequestHeaders<br/>");
        }

        
void myResolveRequestCache(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"myResolveRequestCache<br/>");
        }

        
void myAuthorizeRequest(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"BeginRequest<br/>");
        }

        
void myAuthenticateRequest(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"BeginRequest<br/>");
        }

        
void myAcquireRequestState(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"myAcquireRequestState<br/>");
        }

        
void myReleaseRequestState(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"myReleaseRequestState<br/>");
        }

        
void myPostRequestHandlerExecute(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"myPostRequestHandlerExecute<br/>");
        }

        
void myPreRequestHandlerExecute(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"myPreRequestHandlerExecute<br/>");
        }

        
void myEndRequest(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"myEndRequest<br/>");
        }

        
void myBeginRequest(object sender, EventArgs e)
        {
            HttpApplication app 
= (HttpApplication)sender;
            HttpContext context 
= app.Context;
            context.Response.Write(
"multiHttpModules:myBeginRequest<br/>");
        }

    }
}
/*--===------------------------------------------===---
输出结果:
 testHttpModule:myBeginRequest
multiHttpModules:myBeginRequest
BeginRequest
BeginRequest
myResolveRequestCache
myAcquireRequestState
myPreRequestHandlerExecute

 
myPostRequestHandlerExecute
myReleaseRequestState
myEndRequest
myPreSendRequestHeaders
--===------------------------------------------===---
*/

posted on 2007-12-16 21:48  许明会  阅读(623)  评论(0编辑  收藏  举报