日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#强化系列:HttpModule,HttpHandler,HttpHandlerFactory简单使用

發布時間:2025/7/14 C# 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#强化系列:HttpModule,HttpHandler,HttpHandlerFactory简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這三個對象我們在開發Asp.net程序時經常會用到,似乎很熟悉,但有時候又不太確定。本文通過一個簡單的例子來直觀的比較一下這三個對象的使用。
HttpModule:Http模塊,可以在頁面處理前后、應用程序初始化、出錯等時候加入自己的事件處理程序
HttpHandler:Http處理程序,處理頁面請求
HttpHandlerFactory:用來創建Http處理程序,創建的同時可以附加自己的事件處理程序

例子很簡單,就是在每個頁面的頭部加入一個版權聲明。
一、HttpModule
這個對象我們經常用來進行統一的權限判斷、日志等處理。
例子代碼:

????public?class?MyModule?:?IHttpModule
????{
????????public?void?Init(HttpApplication?application)
????????{
????????????application.BeginRequest?+=?new?EventHandler(application_BeginRequest);
????????}

????????void?application_BeginRequest(object?sender,?EventArgs?e)
????????{
????????????((HttpApplication)sender).Response.Write("Copyright?@Gspring<br/>");
????????}

????????public?void?Dispose()
????????{
????????}
????}

web.config中配置:

??????<httpModules>
????????<add?name="test"?type="HttpHandle.MyModule,?HttpHandle"/>
??????</httpModules>

在Init方法中可以注冊很多application的事件,我們的例子就是在開始請求的時候加入自己的代碼,將版權聲明加到頁面的頭部?

二、HttpHandler

這個對象經常用來加入特殊的后綴所對應的處理程序,比如可以限制.doc的文件只能給某個權限的人訪問。
Asp.Net中的Page類就是一個IHttpHandler的實現
例子代碼:

????public?class?MyHandler?:?IHttpHandler
????{
????????public?void?ProcessRequest(HttpContext?ctx)
????????{
????????????ctx.Response.Write("Copyright?@Gspring<br/>");
????????}
????????public?bool?IsReusable
????????{
????????????get?{?return?true;?}
????????}
????}

web.config中配置:

??????<httpHandlers>
??????<add?verb="*"?path="*.aspx"?type="HttpHandle.MyHandler,?HttpHandle"/>
??????</httpHandlers>

這個對象主要就是ProcessRequest方法,在這個方法中輸出版權信息,但同時也有一個問題:原來的頁面不會被處理,也就是說頁面中只有版權聲明了。那么所有的aspx頁面都不能正常運行了

三、HttpHandlerFactory

這個對象也可以用來加入特殊的后綴所對應的處理程序,它的功能比HttpHandler要更加強大,在系統的web.config中就是通過注冊HttpHandlerFactory來實現aspx頁面的訪問的:

??????<add?path="*.aspx"?verb="*"?type="System.Web.UI.PageHandlerFactory"?validate="true"/>

HttpHandlerFactory是HttpHandler的工廠,通過它來生成不同的HttpHandler對象。

例子代碼:

????public?class?MyHandlerFactory?:?IHttpHandlerFactory
????{
????????public?IHttpHandler?GetHandler(HttpContext?context,?string?requestType,?string?url,?string?pathTranslated)
????????{
????????????PageHandlerFactory?factory?=?(PageHandlerFactory)Activator.CreateInstance(typeof(PageHandlerFactory),?true);
????????????IHttpHandler?handler?=?factory.GetHandler(context,?requestType,?url,?pathTranslated);

????????????//執行一些其它操作
????????????Execute(handler);

????????????return?handler;
????????}

????????private?void?Execute(IHttpHandler?handler)
????????{
????????????if?(handler?is?Page)
????????????{
????????????????//可以直接對Page對象進行操作
????????????????((Page)handler).PreLoad?+=?new?EventHandler(MyHandlerFactory_PreLoad);
????????????}
????????}

????????void?MyHandlerFactory_PreLoad(object?sender,?EventArgs?e)
????????{
????????????((Page)sender).Response.Write("Copyright?@Gspring<br/>");
????????}

????????public?void?ReleaseHandler(IHttpHandler?handler)
????????{
????????}
????}

web.config中配置:

??????<httpHandlers>
??????<add?verb="*"?path="*.aspx"?type="HttpHandle.MyHandlerFactory,?HttpHandle"/>
??????</httpHandlers>

在例子中我們通過調用系統默認的PageHandlerFactory類進行常規處理,然后在處理過程中加入自己的代碼,可以在Page對象上附加自己的事件處理程序。

附一個小的惡作劇:
我們可以開發好aspx頁面,然后把web應用程序發布后把所有的aspx文件的后綴都改為spring,再在web.config中加入配置:

??????<httpHandlers>
??????<add?verb="*"?path="*.spring"?type="HttpHandle.MyHandlerFactory,?HttpHandle"/>
??????</httpHandlers>
??????<compilation>
????????<buildProviders>
??????????<add?extension=".spring"?type="System.Web.Compilation.PageBuildProvider"/>
????????</buildProviders>
??????</compilation>

buildProviders是用來指定spring后綴的編譯程序,我們把它設置成和aspx一致就可以了。如果在IIS中發布的話還需要在應用程序配置中加入spring的后綴映射。
然后我們就可以通過?http://../.../*.spring來訪問我們的網站了

出處:https://www.cnblogs.com/firstyi/archive/2008/05/07/1187274.html

轉載于:https://www.cnblogs.com/hedianzhan/p/8410396.html

總結

以上是生活随笔為你收集整理的C#强化系列:HttpModule,HttpHandler,HttpHandlerFactory简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久高清免费 | 国产精品国产三级国产专区51区 | 黄色片免费在线 | 丰满少妇乱子伦精品看片 | youjizz国产 | 国产美女永久免费 | 在线激情小视频 | 一道本久在线中文字幕 | 色女人天堂 | 男人av资源网 | 懂色av粉嫩av蜜乳av | 男生操女生屁股 | 国产免费av片在线 | 青青草华人在线 | 三点尽露的大尺度国产 | 最新av| 亚洲人成网站999久久久综合 | 四虎成人精品在永久免费 | 在线免费观看视频 | 久久免费高清视频 | 欧美作爱视频 | 亚洲女人的天堂 | 天天想你在线观看完整版电影免费 | 午夜精品视频一区二区三区在线看 | 老头糟蹋新婚少妇系列小说 | 成人中文字幕+乱码+中文字幕 | av日韩中文字幕 | 综合伊人久久 | 国产精品精品国产 | 久色91 | 天天综合天天做天天综合 | 欧美激情69 | 亚洲欧美日韩网站 | 中文在线8资源库 | 成人免费观看在线视频 | 日日噜噜夜夜狠狠久久波多野 | 色综合影视 | 丁香五色月 | 亚洲国产精品免费 | 美女在线观看视频 | 国产欧美一区在线观看 | 一区二区三区国产视频 | 人人亚洲| 性欧美欧美巨大69 | 伊人亚洲 | 亚洲色图第一区 | 全程粗话对白视频videos | 中文有码av | 性猛交╳xxx乱大交 偷偷操不一样的久久 | 老司机在线观看视频 | xxxxx亚洲 | 96视频在线观看 | 欧美 日韩 人妻 高清 中文 | 国产精品v| 欧美一区二区三区视频在线观看 | 成人h在线观看 | 午夜簧片| 国产精品丝袜黑色高跟 | 五十路在线 | 久热这里只有精品6 | 51国产偷自视频区视频 | 国产人妻大战黑人20p | 国产99久久久国产精品 | 欧美在线一二三四区 | 欧美另类第一页 | 日韩欧美视频免费观看 | 在线日韩国产 | 桃色视频 | 亚洲2022国产成人精品无码区 | 邻家有女4完整版电影观看 欧美偷拍另类 | 成年人在线免费观看 | 777四色| 国产精品久久久久久久久岛 | 在线不卡av电影 | 91精品国产高清 | 中文字幕精品无码一区二区 | 秋霞国产午夜精品免费视频 | 精品视频一二三区 | 中文字幕十一区 | 麻豆蜜桃av | 中国a级大片 | 中国18videosex极品 | japanesehdxxxx| 男女一级特黄 | 18在线观看免费入口 | 性色av一区二区三区免费 | 久久久久久久国产精品毛片 | 久久久久亚洲日日精品 | 欧美日韩国产亚洲一区 | 美国三级a三级18 | 国产91专区| 婷婷久久久久久 | 亚洲精品久久久久avwww潮水 | 黄色欧美在线观看 | 日本在线观看一区 | 大地资源中文在线观看免费版 | 亚洲精品成a人在线观看 | 嫩草影院一区二区三区 | 麻豆av毛片|