一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

HttpApplication,HttpModule,HttpContext及Asp.Net頁(yè)生命周期

  IIS在接到一個(gè)新的http請(qǐng)求后,最終會(huì)調(diào)用ASP.NET_isapi.dll的ISAPI擴(kuò)展(特指IIS6.0環(huán)境,iis7.0的應(yīng)用程序池默認(rèn)為集成方式,相對(duì)有所變化),然后傳遞到httpRuntime Pipe(http運(yùn)行時(shí)管道),ASP.NET這時(shí)才開(kāi)始運(yùn)行(即HttpRunTime是ASP.NET真正的入口),HttpRunTime會(huì)為每個(gè)ASP.NET應(yīng)用自動(dòng)創(chuàng)建一個(gè)HttpApplication的實(shí)例,而該實(shí)例中又包含以下屬性:

  Application -->相當(dāng)于傳統(tǒng)意義上ASP時(shí)代的application對(duì)象,通常用于定義一個(gè)ASP.NET應(yīng)用的全局變量

  Context -->HttpContext(上下文)類的實(shí)例【ASP.NET新增的】

  Modules -->影響當(dāng)前應(yīng)用程序的HttpModule模塊集合

  Request -->類似于ASP中的Request對(duì)象,通常用于接收一些特定的值(比如Request.Form或Request.QueryString)

  Response -->類似于ASP中的Response對(duì)象,通常用于向做頁(yè)面輸出指定內(nèi)容(比如Resonse.Write)

  Server -->類似于ASP中的Server對(duì)象,通過(guò)它能獲得一些服務(wù)端的信息(比如Server.MapPath)

  Session -->類似于ASP中的Session對(duì)象

  User -->用于獲取用戶認(rèn)證相關(guān)的安全信息

  從上面的屬性可以發(fā)現(xiàn):很多其實(shí)在ASP年代已在使用,只有Context,Modules,User這三個(gè)是ASP.NET新增的,HttpApplication類除了具備"注1"的幾個(gè)屬性外,還有自己的方法,這里特別提一下Init方法和Dispose方法,這二個(gè)方法均可重載。

  它們的調(diào)用時(shí)機(jī)為:Init方法在Application_Start之后調(diào)用,而Dispose在Application_End之前調(diào)用,另外Application_Start在整個(gè)ASP.NET應(yīng)用的生命周期內(nèi)只激發(fā)一次(比如IIS啟動(dòng)或網(wǎng)站啟動(dòng)時(shí)),類似的Application_End也只有當(dāng)ASP.NET應(yīng)用程序關(guān)閉時(shí)被調(diào)用(比如IIS停止或網(wǎng)站停止時(shí))

  除了Application_Start和Application_End方法,HttpApplication還提供了以下事件:

  這些事件包括前面提到的可重載的Init及Dispose方法,再加上Session對(duì)應(yīng)的Session_Start與Session_End方法,均可直接在Global.ascx.cs中以Application_XXX的形式使用(因?yàn)镚lobal.ascx.cs中定義的類Global本身就是繼承自HttpApplication的。

public class Global : System.Web.HttpApplication

  Modules:每一個(gè)實(shí)現(xiàn)了IHttpModule接口的類,就可以被認(rèn)為是Http模塊組件,可以理解為http請(qǐng)求攔截器,攔截到http請(qǐng)求后,它能修改正在被處理的Context上下文,完事兒之后,再把控制權(quán)交還給管道,如果還有其它模塊,則依次繼續(xù)處理,直到所有Modules集合中的HttpModule都“爽”完為止(注:可憐的http請(qǐng)求就這樣給各個(gè)httpModule輪X了)

  ASP.NET2.0默認(rèn)內(nèi)置了很多HttpModule,從Machine.Config文件中可以發(fā)現(xiàn)以下默認(rèn)的內(nèi)置模塊:

   AnonymouseIdentification --為匿名用戶分配一個(gè)臨時(shí)身份
  FileAuthorization --驗(yàn)證用戶是否有請(qǐng)求文件的Windows NT許可
  FormsAuthentication --窗體身份驗(yàn)證模塊(如果沒(méi)有這個(gè)模塊,ASP.NET就無(wú)法以用戶名/密碼[即FOrms]方式驗(yàn)證)
  OutputCache --輸出緩存模塊
  PassportAuthentication --PassPort驗(yàn)證模塊
  Profile --用戶配置模塊(如果沒(méi)有它,ASP.NET中就無(wú)法使用Profile)
  RoleManager --角色管理
  SessionSate --會(huì)話狀態(tài)模塊
  UrlAuthorization --基于URL的身份驗(yàn)證模塊
  WindowsAuthentication --Windows和IIS身份驗(yàn)證模塊

  User:如果您使用過(guò)ASP.NET2.0內(nèi)置的Membership/Role機(jī)制來(lái)進(jìn)行訪問(wèn)認(rèn)證,就會(huì)對(duì)User對(duì)象感到很熟悉,比如:

if (HttpContext.Current.User.Identity.IsAuthenticated) 
{
//用戶登錄過(guò)了...
}

NET技術(shù)HttpApplication,HttpModule,HttpContext及Asp.Net頁(yè)生命周期,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 五月国产综合视频在线观看 | 精品少妇一区二区三区视频 | 久夜色精品国产一区二区三区 | 免费韩国美女爽快一级毛片 | 国产高清视频一区二区 | 伊人色综合久久天天网 | 国产精品久久婷婷六月丁香 | 一级做性色a爱片久久片 | 最新国产网址 | 99综合色| 午夜国产大片免费观看 | 国产精品社区在线观看 | 99午夜高清在线视频在观看 | 色综合久久88中文字幕 | 久久久久久久综合狠狠综合 | 色爱区综合激月婷婷激情五月 | 91精品国产免费青青碰在线观看 | 国产精品11页 | 美女黄网站色一级毛片 | 国产精品综合色区在线观看 | 国语自产拍在线观看任你躁 | 美女视频黄视大全视频免费的 | 视色4se在线视频播放 | 国产aⅴ精品一区二区三区久久 | 欧美hh | 亚洲 图片 小说 欧美 另类 | 欧美videos在线观看 | 八月丁香婷婷 | 岬奈一区二区中文字幕 | 国产成人毛片视频不卡在线 | 国产自在线观看 | 国产一区二区中文字幕 | 国产呦精品一区二区三区网站 | 日本一区二区成人教育 | 好吊色这里只有精品 | 精品久久久久国产 | 69热视频在线观看免费自拍 | 在线观看国产小视频 | 91精品免费观看 | 中文字幕无线码中文字幕免费 | 99热国产免费 |