茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    ASP.NET中使用Global.asax文件
    來源:易賢網(wǎng) 閱讀:3872 次 日期:2014-08-29 10:22:04
    溫馨提示:易賢網(wǎng)小編為您整理了“ASP.NET中使用Global.asax文件”,方便廣大網(wǎng)友查閱!

    Global.asax 文件,有時(shí)候叫做 ASP.NET 應(yīng)用程序文件,提供了一種在一個(gè)中心位置響應(yīng)應(yīng)用程序級(jí)或模塊級(jí)事件的方法。你可以使用這個(gè)文件實(shí)現(xiàn)應(yīng)用程序安全性以及其它一些任務(wù)。下面讓我們?cè)敿?xì)看一下如何在應(yīng)用程序開發(fā)工作中使用這個(gè)文件。

    概述

    Global.asax 位于應(yīng)用程序根目錄下。雖然 Visual Studio .NET 會(huì)自動(dòng)插入這個(gè)文件到所有的 ASP.NET 項(xiàng)目中,但是它實(shí)際上是一個(gè)可選文件。刪除它不會(huì)出問題——當(dāng)然是在你沒有使用它的情況下。.asax 文件擴(kuò)展名指出它是一個(gè)應(yīng)用程序文件,而不是一個(gè)使用 aspx 的 ASP.NET 文件。

    Global.asax 文件被配置為任何(通過 URL 的)直接 HTTP 請(qǐng)求都被自動(dòng)拒絕,所以用戶不能下載或查看其內(nèi)容。ASP.NET 頁面框架能夠自動(dòng)識(shí)別出對(duì)Global.asax 文件所做的任何更改。在 Global.asax 被更改后ASP.NET 頁面框架會(huì)重新啟動(dòng)應(yīng)用程序,包括關(guān)閉所有的瀏覽器會(huì)話,去除所有狀態(tài)信息,并重新啟動(dòng)應(yīng)用程序域。

    編程

    Global.asax 文件繼承自HttpApplication 類,它維護(hù)一個(gè)HttpApplication 對(duì)象池,并在需要時(shí)將對(duì)象池中的對(duì)象分配給應(yīng)用程序。Global.asax 文件包含以下事件:

    ·Application_Init:在應(yīng)用程序被實(shí)例化或第一次被調(diào)用時(shí),該事件被觸發(fā)。對(duì)于所有的HttpApplication 對(duì)象實(shí)例,它都會(huì)被調(diào)用。

    ·Application_Disposed:在應(yīng)用程序被銷毀之前觸發(fā)。這是清除以前所用資源的理想位置。

    ·Application_Error:當(dāng)應(yīng)用程序中遇到一個(gè)未處理的異常時(shí),該事件被觸發(fā)。

    ·Application_Start:在HttpApplication 類的第一個(gè)實(shí)例被創(chuàng)建時(shí),該事件被觸發(fā)。它允許你創(chuàng)建可以由所有HttpApplication 實(shí)例訪問的對(duì)象。

    ·Application_End:在HttpApplication 類的最后一個(gè)實(shí)例被銷毀時(shí),該事件被觸發(fā)。在一個(gè)應(yīng)用程序的生命周期內(nèi)它只被觸發(fā)一次。

    ·Application_BeginRequest:在接收到一個(gè)應(yīng)用程序請(qǐng)求時(shí)觸發(fā)。對(duì)于一個(gè)請(qǐng)求來說,它是第一個(gè)被觸發(fā)的事件,請(qǐng)求一般是用戶輸入的一個(gè)頁面請(qǐng)求(URL)。

    ·Application_EndRequest:針對(duì)應(yīng)用程序請(qǐng)求的最后一個(gè)事件。

    ·Application_PreRequestHandlerExecute:在 ASP.NET 頁面框架開始執(zhí)行諸如頁面或 Web 服務(wù)之類的事件處理程序之前,該事件被觸發(fā)。

    ·Application_PostRequestHandlerExecute:在 ASP.NET 頁面框架結(jié)束執(zhí)行一個(gè)事件處理程序時(shí),該事件被觸發(fā)。

    ·Applcation_PreSendRequestHeaders:在 ASP.NET 頁面框架發(fā)送 HTTP 頭給請(qǐng)求客戶(瀏覽器)時(shí),該事件被觸發(fā)。

    ·Application_PreSendContent:在 ASP.NET 頁面框架發(fā)送內(nèi)容給請(qǐng)求客戶(瀏覽器)時(shí),該事件被觸發(fā)。

    ·Application_AcquireRequestState:在 ASP.NET 頁面框架得到與當(dāng)前請(qǐng)求相關(guān)的當(dāng)前狀態(tài)(Session 狀態(tài))時(shí),該事件被觸發(fā)。

    ·Application_ReleaseRequestState:在 ASP.NET 頁面框架執(zhí)行完所有的事件處理程序時(shí),該事件被觸發(fā)。這將導(dǎo)致所有的狀態(tài)模塊保存它們當(dāng)前的狀態(tài)數(shù)據(jù)。

    ·Application_ResolveRequestCache:在 ASP.NET 頁面框架完成一個(gè)授權(quán)請(qǐng)求時(shí),該事件被觸發(fā)。它允許緩存模塊從緩存中為請(qǐng)求提供服務(wù),從而繞過事件處理程序的執(zhí)行。

    ·Application_UpdateRequestCache:在 ASP.NET 頁面框架完成事件處理程序的執(zhí)行時(shí),該事件被觸發(fā),從而使緩存模塊存儲(chǔ)響應(yīng)數(shù)據(jù),以供響應(yīng)后續(xù)的請(qǐng)求時(shí)使用。

    ·Application_AuthenticateRequest:在安全模塊建立起當(dāng)前用戶的有效的身份時(shí),該事件被觸發(fā)。在這個(gè)時(shí)候,用戶的憑據(jù)將會(huì)被驗(yàn)證。

    ·Application_AuthorizeRequest:當(dāng)安全模塊確認(rèn)一個(gè)用戶可以訪問資源之后,該事件被觸發(fā)。

    ·Session_Start:在一個(gè)新用戶訪問應(yīng)用程序 Web 站點(diǎn)時(shí),該事件被觸發(fā)。

    ·Session_End:在一個(gè)用戶的會(huì)話超時(shí)、結(jié)束或他們離開應(yīng)用程序 Web 站點(diǎn)時(shí),該事件被觸發(fā)。

    這個(gè)事件列表看起來好像多得嚇人,但是在不同環(huán)境下這些事件可能會(huì)非常有用。

    使用這些事件的一個(gè)關(guān)鍵問題是知道它們被觸發(fā)的順序。Application_Init 和Application_Start 事件在應(yīng)用程序第一次啟動(dòng)時(shí)被觸發(fā)一次。相似地,Application_Disposed 和 Application_End 事件在應(yīng)用程序終止時(shí)被觸發(fā)一次。此外,基于會(huì)話的事件(Session_Start 和 Session_End)只在用戶進(jìn)入和離開站點(diǎn)時(shí)被使用。其余的事件則處理應(yīng)用程序請(qǐng)求,這些事件被觸發(fā)的順序是:

    ·Application_BeginRequest

    ·Application_AuthenticateRequest

    ·Application_AuthorizeRequest

    ·Application_ResolveRequestCache

    ·Application_AcquireRequestState

    ·Application_PreRequestHandlerExecute

    ·Application_PreSendRequestHeaders

    ·Application_PreSendRequestContent

    ·<<執(zhí)行代碼>>

    ·Application_PostRequestHandlerExecute

    ·Application_ReleaseRequestState

    ·Application_UpdateRequestCache

    ·Application_EndRequest

    這些事件常被用于安全性方面。下面這個(gè) C# 的例子演示了不同的Global.asax 事件,該例使用Application_Authenticate 事件來完成通過 cookie 的基于表單(form)的身份驗(yàn)證。此外,Application_Start 事件填充一個(gè)應(yīng)用程序變量,而Session_Start 填充一個(gè)會(huì)話變量。Application_Error 事件顯示一個(gè)簡(jiǎn)單的消息用以說明發(fā)生的錯(cuò)誤。

    protected void Application_Start(Object sender, EventArgs e) {

    Application["Title"] = "Builder.com Sample";

    }

    protected void Session_Start(Object sender, EventArgs e) {

    Session["startValue"] = 0;

    }

    protected void Application_AuthenticateRequest(Object sender, EventArgs e) {

    // Extract the forms authentication cookie

    string cookieName = FormsAuthentication.FormsCookieName;

    HttpCookie authCookie = Context.Request.Cookies[cookieName];

    if(null == authCookie) {

    // There is no authentication cookie.

    return;

    }

    FormsAuthenticationTicket authTicket = null;

    try {

    authTicket = FormsAuthentication.Decrypt(authCookie.Value);

    } catch(Exception ex) {

    // Log exception details (omitted for simplicity)

    return;

    }

    if (null == authTicket) {

    // Cookie failed to decrypt.

    return;

    }

    // When the ticket was created, the UserData property was assigned

    // a pipe delimited string of role names.

    string[2] roles

    roles[0] = "One"

    roles[1] = "Two"

    // Create an Identity object

    FormsIdentity id = new FormsIdentity( authTicket );

    // This principal will flow throughout the request.

    GenericPrincipal principal = new GenericPrincipal(id, roles);

    // Attach the new principal object to the current HttpContext object

    Context.User = principal;

    }

    protected void Application_Error(Object sender, EventArgs e) {

    Response.Write("Error encountered.");

    }

    這個(gè)例子只是很簡(jiǎn)單地使用了一些Global.asax 文件中的事件;重要的是要意識(shí)到這些事件是與整個(gè)應(yīng)用程序相關(guān)的。這樣,所有放在其中的方法都會(huì)通過應(yīng)用程序的代碼被提供,這就是它的名字為Global 的原因。

    這里是前面的例子相應(yīng)的 VB.NET 代碼:

    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)

    Application("Title") = "Builder.com Sample"

    End Sub

    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)

    Session("startValue") = 0

    End Sub

    Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As

    EventArgs)

    ’ Extract the forms authentication cookie

    Dim cookieName As String

    cookieName = FormsAuthentication.FormsCookieName

    Dim authCookie As HttpCookie

    authCookie = Context.Request.Cookies(cookieName)

    If (authCookie Is Nothing) Then

    ’ There is no authentication cookie.

    Return

    End If

    Dim authTicket As FormsAuthenticationTicket

    authTicket = Nothing

    Try

    authTicket = FormsAuthentication.Decrypt(authCookie.Value)

    Catch ex As Exception

    ’ Log exception details (omitted for simplicity)

    Return

    End Try

    Dim roles(2) As String

    roles(0) = "One"

    roles(1) = "Two"

    Dim id As FormsIdentity

    id = New FormsIdentity(authTicket)

    Dim principal As GenericPrincipal

    principal = New GenericPrincipal(id, roles)

    ’ Attach the new principal object to the current HttpContext object

    Context.User = principal

    End Sub

    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)

    Response.Write("Error encountered.")

    End Sub

    資源

    Global.asax 文件是 ASP.NET 應(yīng)用程序的中心點(diǎn)。它提供無數(shù)的事件來處理不同的應(yīng)用程序級(jí)任務(wù),比如用戶身份驗(yàn)證、應(yīng)用程序啟動(dòng)以及處理用戶會(huì)話等。你應(yīng)該熟悉這個(gè)可選文件,這樣就可以構(gòu)建出健壯的ASP.NET 應(yīng)用程序。

    更多信息請(qǐng)查看IT技術(shù)專欄

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:ASP.NET中使用Global.asax文件
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報(bào)班

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)