在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
简要说明 最近半年一直在做一个项目,公司的前端MES系统.然后呢,最近又一直在考虑权限卡控的问题.于是就把之前看过的HTTP Module又重新研究了一番.记得很久之前就在一个同事面前,和其高谈阔论过HTTP模块的作用,至今仍历历在目.当时讨论的话题是如何做网站的统计分析,我说如果是ASP.NET的话,使用HTTP Module是一个很好的方式.因为HTTP模块可以重用呀.只要配置Web.config就可以啦,可以被多个网站重用,很适合公司目前的情况.然后还说了一番自己的见解,分析了一番ASP.NET应用程序的生命周期.最后结论是HTTP Module可以做,而且会比较方便的做.进一步拓展到如果不是ASP.NET的网站,那一样是可以做,只要重新配置一下IIS就可以啦.(嗯,注意哦这个讨论仅限于与Windows的IIS环境下哟).后来很长时间没有碰,那个网站统计分析的想法也没有去实践论证.发现自己啦~~~是个空想主义者 = =|| 好啦,总结一下HTTP Module,阶段性总结,梳理一下自己的知识. HTTP模块概述 HTTP模块是一个在每次针对应用程序发出请求时调用的程序集.HTTP模块作为请求管道的一部分调用,它能够在整个请求过程中访问生命周期事件.因此,HTTP模块使您可以检查传入的请求并根据该请求进行操作.它们还使您可以检查传出的响应并修改它.所以HTTP模块通常具有以下用途:
其实 ASP.NET使用模块来实现各个应用程序功能,其中包括Forms身份验证,缓存,会话状态和客户端脚本任务. HTTP模块工作方式 模块必须经过注册才能从请求管道接收通知.注册HTTP模块的最常用发发就是在应用程序的web.config中进行注册.IIS 7.0有另外的注册方式.模块经过注册之后就可以在应用程序中工作.具体工作方式如下描述: 1、ASP.NET创建表示应用程序的HttpApplication类的实例时,将创建已注册的任何模块实例。 2、在创建模块实例时,将调用模块的Init方法并自行初始化。 3、在Init方法中,订阅需要的各种应用程序事件 4、当应用程序事件被引发时,将调用模块中的相应方法。 5、当模块的事件处理程序完成运行时,ASP会调用管道中的下一进程。这个可能是另一个模块,也可能是用于该请求的HTTP处理程序 HTTP模块与Global.asax文件 Global.asax 文件(也称为 ASP.NET 应用程序文件)是一个可选的文件,该文件包含响应 ASP.NET 或 HTTP 模块所引发的应用程序级别和会话级别事件的代码。
HTTP模块自定义的事件,可以在Global文件中订阅,比如说Session_Start,这个其实就是订阅了Session模块的Start事件. 简单的讲就是这样子的.我在模块中定义了一个Event(事件),那我这个事件的处理函数是什么哪?我何时注册该事件?
创建自定义HTTP模块的步骤 1、创建实现IHttpModule接口的类。 2、为Init方法编写一个处理程序。初始化方法应该初始化模块并订阅所需的任何应用程序事件。 3、为已经订阅的事件编写代码。 4、如果模块需要清理,还可选择实现Dispose方法。 5、在Web.config文件中注册模块.
请继续关注~~实现了自定义页眉和页脚的一个简单的HTTP模块 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论