ASP.NET的HTTP模块和处理程序之HTTP模块的注册和使用

开发 后端
为了实现扩充或扩展Web服务器的功能,ASP.NET提供了HttpHandler(HTTP处理程序)和HttpModule(HTTP模块),这里,笔者将带各位深入了解这些组件的详细信息。这篇文章,笔者继续向大家介绍ASP.NET中HTTP模块的注册和使用。

  在配置文件中注册HTTP模块

  当我们建立了HTTP模块并把它复制到Web应用程序的bin目录或者全局部件缓冲(Global Assembly Cache)之后,接下来就应该在web.config或machine.config中注册它了。

  我们可以使用<httpModules>和<add>节点把HTTP模块添加到Web应用程序中。实际上模块都使用<add>节点列举在<httpModules>和</httpModules>节点之内了。

  因为配置设置信息是可以继承的,所以子目录从父目录那儿继承配置设置信息。其结果是,子目录可能继承了一些不需要的HTTP模块(它们是父配置信息的一部分);因此,我们需要一种删除这些不需要的模块的方法。我们可以使用<remove>节点;如果我们希望删除从应用程序继承得到的所有HTTP模块,可以使用<clear>节点。

  下面的代码是添加HTTP模块的一个通用示例:

  1. <httpModules>  
  2. <add type="classname, assemblyname" name="modulename" />  
  3. <httpModules> 

  下面的代码是从应用程序中删除HTTP模块的一个通用示例:

  1. <httpModules>  
  2. <remove name="modulename" />  
  3. <httpModules> 

  在上面的XML中:

  · Type属性用类和部件名称的形式指定了HTTP模块的实际类型。

  · Name属性指定了模块的友好名称。其它应用程序可以使用这个名称来识别HTTP模块。

  ASP.NET运行时如何使用HTTP模块

  ASP.NET运行时使用HTTP模块实现某些特殊的功能。下面的片段来自于machine.config文件,它显示了ASP.NET运行时安装的HTTP模块:

  1. <httpModules>  
  2. <add name="OutputCache" type="System.Web.Caching.OutputCacheModule"/>  
  3. <add name="Session" type="System.Web.SessionState.SessionStateModule"/>  
  4. <add name="WindowsAuthentication" 
  5. type="System.Web.Security.WindowsAuthenticationModule"/>  
  6. <add name="FormsAuthentication" 
  7. type="System.Web.Security.FormsAuthenticationModule"/>  
  8. <add name="PassportAuthentication" 
  9. type="System.Web.Security.PassportAuthenticationModule"/>  
  10. <add name="UrlAuthorization" 
  11. type="System.Web.Security.UrlAuthorizationModule"/>  
  12. <add name="FileAuthorization" 
  13. type="System.Web.Security.FileAuthorizationModule"/>  
  14. </httpModules> 

  ASP.NET使用上面一些HTTP模块来提供一些服务,例如身份验证和授权、对话管理和输出缓冲。由于这些模块都注册在machine.config文件中。

【编辑推荐】

  1. ASP.NET的HTTP模块和处理程序
  2. ASP.NET的HTTP模块和处理程序之请求的处理过程
  3. ASP.NET的HTTP模块和处理程序之处理程序的执行
  4. ASP.NET的HTTP模块和处理程序之对话状态
  5. ASP.NET的HTTP模块和处理程序之模块实现
责任编辑:韩亚珊 来源: 天极网
相关推荐

2011-04-13 15:18:10

.htmHTTP请求处理

2011-04-13 16:59:41

HTTPASP.NET

2011-04-13 16:35:47

HTTPASP.NET

2011-04-13 16:27:48

HTTPASP.NET

2011-04-13 15:50:49

.htmHTTP请求处理

2009-07-23 16:20:48

HTTP协议ASP.NET

2009-08-03 11:21:47

ASP.NET编程模型

2009-07-20 16:23:01

ASP.NET授权模块

2023-07-04 08:26:15

2009-07-28 15:29:03

实现HTTP请求ASP.NET

2011-02-13 09:37:55

ASP.NET

2009-08-03 12:40:46

ASP.NET编程模型

2009-08-03 13:12:34

ASP.NET编程模型

2009-07-22 18:03:00

ASP.NET ASP

2009-07-27 10:12:37

GridView和Ob

2009-07-29 16:08:07

ASP和ASP.NET

2023-07-03 08:48:40

Web模块化设计

2009-07-27 13:25:15

Postback程序处ASP.NET

2009-08-21 18:00:38

ASP.NET mac

2012-08-20 10:24:15

ASP.NET
点赞
收藏

51CTO技术栈公众号