ASP.NET運行時的處理流程
ASP.NET運行時的處理流程
其實在ASP.NET中每一個請求都進行了驗證和授權的。進行驗證和授權的過程實際上是通過觸發相應的事件來完成的。
在講述驗證事件之前,首先清晰一個流程:ASP.NET運行時接到一個請求的處理的流程。
先把流程描述一下,使得大家有個總體把握:一個請求來了,經過IIS,通過ISAPI,就到達了ASP.NET的管道中,然后經過一些的轉化和包裝,然后ASP.NET運行時開始處理這個請求了,然后是進行驗證和授權,然后再進行一系列的處理,***確定請求是是什么文件,如果是.aspx的,那么然后就開始頁面的生命周期,如下圖。
下面就處理請求時候觸發的事件順序如下:
BeginRequest: 開發處理請求,是處理ASP.NET請求時觸發的***個事件
AuthenticateRequest:處理身份驗證
...
AuthorizeRequest:處理授權
...
所以大家可以看出,其實在請求的處理過程中,身份的驗證和授權發生的時期是很早的。而且有關驗證的一些信息,如用戶名和角色在處理完這兩個事件之后就已經確定,并且填充。下面我想用個圖來講述:

一般對于請求的驗證和授權,我們是希望也應該自己控制這個過程的,所以我們可以在AuthenticateRequest和AuthorizeRequest的事件處理中加入我們自己的代碼。以上是ASP.NET運行時的處理流程。
【編輯推薦】