1. 程式人生 > >vs .net 2005 的Global.asax 在哪新增

vs .net 2005 的Global.asax 在哪新增

其它瞭解:   Global.asax 檔案,有時候叫做 ASP.NET 應用程式檔案,提供了一種在一箇中心位置響應應用程式級或模組級事件的方法。你可以使用這個檔案實現應用程式安全性以及其它一些任務。下面讓我們詳細看一下如何在應用程式開發工作中使用這個檔案。

概述

Global.asax 位於應用程式根目錄下。雖然 Visual Studio .NET 會自動插入這個檔案到所有的 ASP.NET 專案中,但是它實際上是一個可選檔案。刪除它不會出問題——當然是在你沒有使用它的情況下。.asax 副檔名指出它是一個應用程式檔案,而不是一個使用 aspx 的 ASP.NET 檔案。

Global.asax 檔案被配置為任何(通過 URL 的)直接 HTTP 請求都被自動拒絕,所以使用者不能下載或檢視其內容。ASP.NET 頁面框架能夠自動識別出對Global.asax 檔案所做的任何更改。在 Global.asax 被更改後ASP.NET 頁面框架會重新啟動應用程式,包括關閉所有的瀏覽器會話,去除所有狀態資訊,並重新啟動應用程式域。

程式設計

Global.asax 檔案繼承自HttpApplication 類,它維護一個HttpApplication 物件池,並在需要時將物件池中的物件分配給應用程式。Global.asax 檔案包含以下事件:

·         Application_Init:在應用程式被例項化或第一次被呼叫時,該事件被觸發。對於所有的HttpApplication 物件例項,它都會被呼叫。

·         Application_Disposed:在應用程式被銷燬之前觸發。這是清除以前所用資源的理想位置。

·         Application_Error:當應用程式中遇到一個未處理的異常時,該事件被觸發。

·         Application_Start:在HttpApplication 類的第一個例項被建立時,該事件被觸發。它允許你建立可以由所有HttpApplication 例項訪問的物件。

·         Application_End:在HttpApplication 類的最後一個例項被銷燬時,該事件被觸發。在一個應用程式的生命週期內它只被觸發一次。

·         Application_BeginRequest:在接收到一個應用程式請求時觸發。對於一個請求來說,它是第一個被觸發的事件,請求一般是使用者輸入的一個頁面請求(URL)。

·         Application_EndRequest:針對應用程式請求的最後一個事件。

·         Application_PreRequestHandlerExecute:在 ASP.NET 頁面框架開始執行諸如頁面或 Web 服務之類的事件處理程式之前,該事件被觸發。

·         Application_PostRequestHandlerExecute:在 ASP.NET 頁面框架結束執行一個事件處理程式時,該事件被觸發。

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

·         Application_PreSendContent:在 ASP.NET 頁面框架傳送內容給請求客戶(瀏覽器)時,該事件被觸發。

·         Application_AcquireRequestState:在 ASP.NET 頁面框架得到與當前請求相關的當前狀態(Session 狀態)時,該事件被觸發。

·         Application_ReleaseRequestState:在 ASP.NET 頁面框架執行完所有的事件處理程式時,該事件被觸發。這將導致所有的狀態模組儲存它們當前的狀態資料。

·         Application_ResolveRequestCache:在 ASP.NET 頁面框架完成一個授權請求時,該事件被觸發。它允許快取模組從快取中為請求提供服務,從而繞過事件處理程式的執行。

·         Application_UpdateRequestCache:在 ASP.NET 頁面框架完成事件處理程式的執行時,該事件被觸發,從而使快取模組儲存響應資料,以供響應後續的請求時使用。

·         Application_AuthenticateRequest:在安全模組建立起當前使用者的有效的身份時,該事件被觸發。在這個時候,使用者的憑據將會被驗證。

·         Application_AuthorizeRequest:當安全模組確認一個使用者可以訪問資源之後,該事件被觸發。

·         Session_Start:在一個新使用者訪問應用程式 Web 站點時,該事件被觸發。

·         Session_End:在一個使用者的會話超時、結束或他們離開應用程式 Web 站點時,該事件被觸發。

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

使用這些事件的一個關鍵問題是知道它們被觸發的順序。Application_Init 和Application_Start 事件在應用程式第一次啟動時被觸發一次。相似地,Application_Disposed 和 Application_End 事件在應用程式終止時被觸發一次。此外,基於會話的事件(Session_Start 和 Session_End)只在使用者進入和離開站點時被使用。其餘的事件則處理應用程式請求,這些事件被觸發的順序是:

·         Application_BeginRequest

·         Application_AuthenticateRequest

·         Application_AuthorizeRequest

·         Application_ResolveRequestCache

·         Application_AcquireRequestState

·         Application_PreRequestHandlerExecute

·         Application_PreSendRequestHeaders

·         Application_PreSendRequestContent

·         <<執行程式碼>>

·         Application_PostRequestHandlerExecute

·         Application_ReleaseRequestState

·         Application_UpdateRequestCache

·         Application_EndRequest

這些事件常被用於安全性方面。下面這個 C# 的例子演示了不同的Global.asax 事件,該例使用Application_Authenticate 事件來完成通過 cookie 的基於表單(form)的身份驗證。此外,Application_Start 事件填充一個應用程式變數,而Session_Start 填充一個會話變數。Application_Error 事件顯示一個簡單的訊息用以說明發生的錯誤。

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);

相關推薦

vs .net 2005Global.asax新增

其它瞭解:   Global.asax 檔案,有時候叫做 ASP.NET 應用程式檔案,提供了一種在一箇中心位置響應應用程式級或模組級事件的方法。你可以使用這個檔案實現應用程式安全性以及其它一些任務。下面讓我們詳細看一下如何在應用程式開發工作中使用這個檔案。 概述 Global.asax 位於應用程式根

asp.net mvc global.asax文件詳解

cte sharp resolve 起點 intern tco pro 處理程序 light 一、文件概述   global.asax這個文件包含全局應用程序事件的事件處理程序。它響應應用程序級別和會話級別事件的代碼。  運行時, Global.asax 將被編譯成一個動態

VS.net 2005中修改除錯時的預設器

我曾經安裝過Firefox瀏覽器,在Visual Studio 2005中Debug除錯時,ASP.NET專案啟動的是Firefox瀏覽器,把IE設為預設瀏覽器也不行。把Firefox解除安裝了更不行,VS.NET會提示

Asp.netGlobal.asax設定防止Sql注入

using System; using System.IO; public partial class Global : System.Web.HttpApplication { protected void Application_Start(object se

asp.net Global.asax 不運行解決

ima png net 解決方法 publish 解決 alt sax img asp.net application的站點發布後 Global.asax 未運行,搞了好久終於解決, 解決方法如下: publish設置 該設置經測試在win server

ASP.NET MVC中的Global.asax文件

stc sta 垃圾回收 tar event toolbar 初始化 requests 網站 1.global.asax文件概述 global.asax這個文件包含全局應用程序事件的事件處理程序。它響應應用程序級別和會話級別事件的代碼。  運行時, Global.asa

net錯誤日誌統一處理 Global.asax

webform錯誤日誌統一處理 Global.asax protected void Application_Error(object sender, EventArgs e) { //在出現未處理的

.Net MVC 裡面的核心檔案Global.asax執行原理分析

這個 Global.asax檔案是MVC裡面的起始檔案,它不同於其它檔案比如,M層,V層和C層。他是一個獨立的可配置的檔案。 因為.Net MVC把前後端完全分離,極度抽象的一個框架。或許導致了很多從WebForm轉過來的不適應。Global檔案就是此類。 它與MVC裡面的篩選器,控

ASP.NET MVC中的Global.asax檔案

1.global.asax檔案概述  global.asax這個檔案包含全域性應用程式事件的事件處理程式。它響應應用程式級別和會話級別事件的程式碼。  執行時, Global.asax 將被編譯成一個動態生成的 .NET Framework 類,該類是從HttpApplication基類派生的。 因此在gl

ASP.NET全域性檔案Global.asax用法分析

一、定義:Global.asax 檔案(也稱為 ASP.NET 應用程式檔案)是一個可選的檔案,該檔案包含響應 ASP.NET 或HTTP模組所引發的應用程式級別和會話級別事件的程式碼。Global.asax 檔案駐留在 ASP.NET 應用程式的根目錄中。執行

如何使用VS Code在.Net Core 2.0中新增專案並引用本地包

廢話後面再說,先將操作步驟貼出來。第一步,開啟VS Code,使用快捷鍵“Ctrl + `”開啟終端,或者在選單欄的“檢視”選單中找到“整合終端”並點選。在開啟的終端視窗中輸入一下命令定位到儲存程式的目錄,並新建資料夾“LocalNupkgRefExample”,資料夾名稱自

關於觸發asp.net Global.asax Session_End事件的經驗

   在做asp.net程式設計開發的時候,我遇見這樣的問題,一個使用者只能在一臺機器上登入, 如果有使用者在其他機器上登入,系統將提示該使用者已經登入!當前登陸非法!我的做法是: 用Application變數儲存已經Login的使用者資訊,當Session_Start的時候

nopCommerce 3.9 大波浪系列 之 global.asax

ring ntc 開發 idt disable pre ren ins 未處理 一.nop的global.asax文件 nop3.9基於ASP.NET MVC 5框架開發,而ASP.NET MVC中global.asax文件包含全局應用程序事件的事件處理程序,它響應應用程序

Global.asax 中校驗Session

protected web應用 lob sts resolve rect user log 經驗 Application 相關的     Application_Init:在每一個HttpApplication實例初始化的時候執行。     Application_Di

使用Global.asax的Application_BeginRequest事件過濾客戶端XSS惡意腳本提交

false 手動 gen 觸發 drop nio static lob 程序   XSS攻擊全稱跨站腳本攻擊(Cross Site Scripting),是一種在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼(如HTML代碼和客戶端腳本)植入到提供給其它用戶使用的

Java VS .NET:Java與.NET的特點對比

AD web服務 產出 圖形化界面 編譯器 工作 root free batis 一、前言 為什麽要寫Java跟.NET對比? .NET出生之後就帶著Java的影子。從模仿到創新,.NET平臺也越來越成熟。他們不同的支持者也經常因為孰弱孰強的問題爭論不休。但是本文並不是

如何編寫.NET Core Global Tools (附兩個案例)

帶來 北京 namespace write blog 生成xml 編輯 依賴項 註冊賬戶 一.什麽是 .NET Core Global Tools 2018年5月31日(北京時間)微軟發布了 .NET Core 2.1 正式版,.NET Core 2.1 為我們帶來了一個新

如何創建一個自己的.NET Core Global Tools

list dmi EDA 系列 cookie 文件 進入 北京時間 右上角 索引 NET Core應用框架之BitAdminCore框架應用篇系列 框架演示:https://www.bitadmincore.com 框架源碼:https://github.com/chen

“技術型”VS“需求型”專案經理, 一個被程式設計師罵的更多?

軟體專案的開發過程中,都會需要一個專案經理來監控這個專案的開發進度,同時給開發人員提供必要的技術支援。然而在實際的開發中,程式設計師並不一定會給專案經理好的臉色。究其原因有很多但最主要的就是,團隊成員之間的溝通不協調而造成的。最初的時候,需求沒有分析完整而導致後面的程式碼大量重構,同時又要不斷的根據

vs .net專案自動更新版本號

使用SVN的一個程式, 一般都會裝,無需再次下載和安裝了. 只需要在專案屬性-> 生成事件-> 後期生成事件命令 中加入 subwcrev.exe $(ProjectDir)Properties\ $(ProjectDir)Properties\AssemblyInfo.