ASP.NET的HTTP模塊和處理程序之HTTP模塊的注冊和使用
在配置文件中注冊HTTP模塊
當我們建立了HTTP模塊并把它復制到Web應用程序的bin目錄或者全局部件緩沖(Global Assembly Cache)之后,接下來就應該在web.config或machine.config中注冊它了。
我們可以使用<httpModules>和<add>節點把HTTP模塊添加到Web應用程序中。實際上模塊都使用<add>節點列舉在<httpModules>和</httpModules>節點之內了。
因為配置設置信息是可以繼承的,所以子目錄從父目錄那兒繼承配置設置信息。其結果是,子目錄可能繼承了一些不需要的HTTP模塊(它們是父配置信息的一部分);因此,我們需要一種刪除這些不需要的模塊的方法。我們可以使用<remove>節點;如果我們希望刪除從應用程序繼承得到的所有HTTP模塊,可以使用<clear>節點。
下面的代碼是添加HTTP模塊的一個通用示例:
- <httpModules>
- <add type="classname, assemblyname" name="modulename" />
- <httpModules>
下面的代碼是從應用程序中刪除HTTP模塊的一個通用示例:
- <httpModules>
- <remove name="modulename" />
- <httpModules>
在上面的XML中:
· Type屬性用類和部件名稱的形式指定了HTTP模塊的實際類型。
· Name屬性指定了模塊的友好名稱。其它應用程序可以使用這個名稱來識別HTTP模塊。
ASP.NET運行時如何使用HTTP模塊
ASP.NET運行時使用HTTP模塊實現某些特殊的功能。下面的片段來自于machine.config文件,它顯示了ASP.NET運行時安裝的HTTP模塊:
- <httpModules>
- <add name="OutputCache" type="System.Web.Caching.OutputCacheModule"/>
- <add name="Session" type="System.Web.SessionState.SessionStateModule"/>
- <add name="WindowsAuthentication"
- type="System.Web.Security.WindowsAuthenticationModule"/>
- <add name="FormsAuthentication"
- type="System.Web.Security.FormsAuthenticationModule"/>
- <add name="PassportAuthentication"
- type="System.Web.Security.PassportAuthenticationModule"/>
- <add name="UrlAuthorization"
- type="System.Web.Security.UrlAuthorizationModule"/>
- <add name="FileAuthorization"
- type="System.Web.Security.FileAuthorizationModule"/>
- </httpModules>
ASP.NET使用上面一些HTTP模塊來提供一些服務,例如身份驗證和授權、對話管理和輸出緩沖。由于這些模塊都注冊在machine.config文件中。
【編輯推薦】