ASP.NET的HTTP模塊和處理程序之HTTP模塊的注冊(cè)和使用
在配置文件中注冊(cè)HTTP模塊
當(dāng)我們建立了HTTP模塊并把它復(fù)制到Web應(yīng)用程序的bin目錄或者全局部件緩沖(Global Assembly Cache)之后,接下來就應(yīng)該在web.config或machine.config中注冊(cè)它了。
我們可以使用<httpModules>和<add>節(jié)點(diǎn)把HTTP模塊添加到Web應(yīng)用程序中。實(shí)際上模塊都使用<add>節(jié)點(diǎn)列舉在<httpModules>和</httpModules>節(jié)點(diǎn)之內(nèi)了。
因?yàn)榕渲迷O(shè)置信息是可以繼承的,所以子目錄從父目錄那兒繼承配置設(shè)置信息。其結(jié)果是,子目錄可能繼承了一些不需要的HTTP模塊(它們是父配置信息的一部分);因此,我們需要一種刪除這些不需要的模塊的方法。我們可以使用<remove>節(jié)點(diǎn);如果我們希望刪除從應(yīng)用程序繼承得到的所有HTTP模塊,可以使用<clear>節(jié)點(diǎn)。
下面的代碼是添加HTTP模塊的一個(gè)通用示例:
- <httpModules>
- <add type="classname, assemblyname" name="modulename" />
- <httpModules>
下面的代碼是從應(yīng)用程序中刪除HTTP模塊的一個(gè)通用示例:
- <httpModules>
- <remove name="modulename" />
- <httpModules>
在上面的XML中:
· Type屬性用類和部件名稱的形式指定了HTTP模塊的實(shí)際類型。
· Name屬性指定了模塊的友好名稱。其它應(yīng)用程序可以使用這個(gè)名稱來識(shí)別HTTP模塊。
ASP.NET運(yùn)行時(shí)如何使用HTTP模塊
ASP.NET運(yùn)行時(shí)使用HTTP模塊實(shí)現(xiàn)某些特殊的功能。下面的片段來自于machine.config文件,它顯示了ASP.NET運(yùn)行時(shí)安裝的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模塊來提供一些服務(wù),例如身份驗(yàn)證和授權(quán)、對(duì)話管理和輸出緩沖。由于這些模塊都注冊(cè)在machine.config文件中。
【編輯推薦】