Global.asax和IHttpModule

简介:

两者都能处理HttpApplication中的事件。

IHttpModule 的方式可以用来创建多个 Module ,并编译为程序集,方便部署和在多个项目中使用。 
而 Global.asax 方式比较直接,方便在程序中一次性的处理。

Global.asax是继承了HttpApplication。而IHttpModule的Init方法中,传入的参数必须是HttpApplication。

HttpModule可以编译成dll,但是global只能在一个应用程序中。

You can use the Global.asax file to synchronize any event that is exposed by the HttpApplication base class. To do this, you must use the following naming pattern to author methods:

在Global.asax中,如果要实现HttpApplication中暴露的事件,必须采用专用的命名规则。Application_EventName(AppropriateEventArgumentSignature)

protected void Application_AcquireRequestState(object sender, EventArgs e) 
        { 
            Response.Write("1Application_AcquireRequestState" + "<br>"); 
        } 
        protected void Application_AuthenticateRequest(object sender, EventArgs e) 
        { 
            Response.Write("2Application_AuthenticateRequest" + "<br>"); 
        } 
        protected void Application_AuthorizeRequest(object sender, EventArgs e) 
        { 
            Response.Write("3Application_AuthorizeRequest" + "<br>"); 
        } 
        protected void Application_BeginRequest(object sender, EventArgs e) 
        { 
            Response.Write("4Application_BeginRequest" + "<br>"); 
        } 
        protected void Application_Disposed(object sender, EventArgs e) 
        { 
            Response.Write("5Application_Disposed" + "<br>"); 
        } 
        protected void Application_EndRequest(object sender, EventArgs e) 
        { 
            Response.Write("6Application_EndRequest" + "<br>"); 
        } 
        protected void Application_Error(object sender, EventArgs e) 
        { 
            Response.Write("7Application_Error" + "<br>"); 
        } 
        protected void Application_LogRequest(object sender, EventArgs e) 
        { 
            Response.Write("8Application_LogRequest" + "<br>"); 
        } 
        protected void Application_MapRequestHandler(object sender, EventArgs e) 
        { 
            Response.Write("9Application_MapRequestHandler" + "<br>"); 
        } 
        protected void Application_PostAcquireRequestState(object sender, EventArgs e) 
        { 
            Response.Write("10Application_PostAcquireRequestState" + "<br>"); 
        } 
        protected void Application_PostAuthenticateRequest(object sender, EventArgs e) 
        { 
            Response.Write("11Application_PostAuthenticateRequest" + "<br>"); 
        } 
        protected void Application_PostAuthorizeRequest(object sender, EventArgs e) 
        { 
            Response.Write("12Application_PostAuthorizeRequest" + "<br>"); 
        } 
        protected void Application_PostLogRequest(object sender, EventArgs e) 
        { 
            Response.Write("13Application_PostLogRequest" + "<br>"); 
        } 
        protected void Application_PostMapRequestHandler(object sender, EventArgs e) 
        { 
            Response.Write("14Application_PostMapRequestHandler" + "<br>"); 
        } 
        protected void Application_PostReleaseRequestState(object sender, EventArgs e) 
        { 
            Response.Write("15Application_PostReleaseRequestState" + "<br>"); 
        } 
        protected void Application_PostRequestHandlerExecute(object sender, EventArgs e) 
        { 
            Response.Write("16Application_PostRequestHandlerExecute" + "<br>"); 
        } 
        protected void Application_PostResolveRequestCache(object sender, EventArgs e) 
        { 
            Response.Write("17Application_PostResolveRequestCache" + "<br>"); 
        } 
        protected void Application_PostUpdateRequestCache(object sender, EventArgs e) 
        { 
            Response.Write("18Application_PostUpdateRequestCache" + "<br>"); 
        } 
        protected void Application_PreRequestHandlerExecute(object sender, EventArgs e) 
        { 
            Response.Write("19Application_PreRequestHandlerExecute" + "<br>"); 
        } 
        protected void Application_PreSendRequestContent(object sender, EventArgs e) 
        { 
            Response.Write("20Application_PreSendRequestContent" + "<br>"); 
        } 
        protected void Application_PreSendRequestHeaders(object sender, EventArgs e) 
        { 
            Response.Write("21Application_PreSendRequestHeaders" + "<br>"); 
        } 
        protected void Application_ReleaseRequestState(object sender, EventArgs e) 
        { 
            Response.Write("22Application_ReleaseRequestState" + "<br>"); 
        } 
        protected void Application_ResolveRequestCache(object sender, EventArgs e) 
        { 
            Response.Write("23Application_ResolveRequestCache" + "<br>"); 
        } 
        protected void Application_UpdateRequestCache(object sender, EventArgs e) 
        { 
            Response.Write("24Application_UpdateRequestCache" + "<br>"); 
        }

















本文转自cnn23711151CTO博客,原文链接: http://blog.51cto.com/cnn237111/592261,如需转载请自行联系原作者



相关文章
|
缓存 NoSQL Linux
Linux调试
本文介绍了Linux调试、性能分析和追踪的培训资料,涵盖调试、性能分析和追踪的基础知识及常用工具。
765 63
Linux调试
|
12月前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
242 14
WK
|
算法
粒子群算法的优缺点分别是什么
粒子群优化(PSO)算法概念简单,易于编程实现,参数少,收敛速度快,全局搜索能力强,并行处理高效。然而,它也容易陷入局部最优,参数设置敏感,缺乏坚实的理论基础,且性能依赖初始种群分布,有时会出现早熟收敛。实际应用中需根据具体问题调整参数以最大化优势。
WK
1837 3
|
JavaScript 前端开发
详细解读checkbox的全选与反选
详细解读checkbox的全选与反选
338 0
|
Kotlin
Kotlin教程笔记(21) -高阶函数与函数引用
Kotlin教程笔记(21) -高阶函数与函数引用
66 1
Kotlin教程笔记(21) -高阶函数与函数引用
|
机器学习/深度学习 编解码 PyTorch
【YOLOv8改进】HWD: Haar小波降采样,用于语义分割的降采样模块,减少特征图的空间分辨率
YOLOv8专栏探讨了卷积网络的改进,特别是提出了一种名为HWD的基于Haar小波的下采样模块,用于语义分割,旨在保留更多空间信息。HWD结合了无损编码和特征表示学习,提高了模型性能并减少了信息不确定性。新度量标准FEI量化了下采样的信息保留能力。论文和代码可在提供的链接中找到。核心代码展示了如何在PyTorch中实现HWD模块。
|
存储 机器学习/深度学习 数据挖掘
时序数据库 TDengine 与高级分析软件 Seeq 集成,来看看操作手册
通过 TDengine Java connector,Seeq 可以轻松支持查询 TDengine 提供的时序数据,并提供数据展现、分析、预测等功能。本文将对此进行介绍。
559 2
|
SQL 数据管理 数据库
【安装指南】从零开始:SQL Server 2019与SSMS完美安装攻略!
【安装指南】从零开始:SQL Server 2019与SSMS完美安装攻略!
621 0
|
算法
【数据结构与算法】快速排序的非递归实现方法
【数据结构与算法】快速排序的非递归实现方法
346 0
input输入框输入只能输入数字、字母等组合的正则表达式
input输入框输入只能输入数字、字母等组合的正则表达式
1241 0