狠狠撸
Submit Search
Asp net原理
May 2, 2017
Download as PPTX, PDF
0 likes
189 views
俊
俊彬 李
读书心得
Read less
Read more
1 of 74
Download now
Download to read offline
Recommended
Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解
zany_hui
?
Spring4.x + hibernate4.x_配置详解
Uliweb比较与实践 2013
Uliweb比较与实践 2013
modou li
?
在 pycon china beijing 大会上的演讲,对于uliweb和其它框架的一些比较,以及uliweb的一些特色功能介绍
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin
?
2009 Java Certification Day
Parse, cloud code 介紹
Parse, cloud code 介紹
wantingj
?
Parse 應用
Java SE 7 技術手冊 - 課後練習解答
Java SE 7 技術手冊 - 課後練習解答
Justin Lin
?
Java SE 7 技術手冊
Python xmlrpc-odoo
Python xmlrpc-odoo
robin yang
?
python webservice base on xmlrpc and used in odoo
180518 ntut js and node
180518 ntut js and node
Peter Yi
?
js and node training
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
zhangsuoyong
?
前端开发工具推荐
Berserk js
Berserk js
taobao.com
?
钟志 第八期Web标准化交流会
钟志 第八期Web标准化交流会
Zhi Zhong
?
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
Li JianYe
?
第一部分主要是对运维平台的思考、系统演化方式,以及用谤耻产测/谤补颈濒蝉开发项目时的收获;第二部分是结合自己的工作谈谈单页面应用开发中的技术思路
六步教你学会简单搁尘颈
六步教你学会简单搁尘颈
yiditushe
?
Node Web开发实战
Node Web开发实战
fengmk2
?
Node Web开发实战
利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek
Johnson Gau
?
SignalR是基於ASP.NET所發展的一項即時通訊技術, 幫你整合了各種通訊協定, 只要用一種統一的方式就可在網頁/APP/Windows form 間進行即時通訊, 符合目前資料在雲端, 應用程式在個平台上跑的目標
闯补惫补华为面试题
闯补惫补华为面试题
yiditushe
?
廖雪峰 Saa s ovp
廖雪峰 Saa s ovp
drewz lin
?
异步编程与浏览器执行模型
异步编程与浏览器执行模型
keelii
?
someone's pptx
使用狈辞诲别闯厂构建静态资源管理系统
使用狈辞诲别闯厂构建静态资源管理系统
Frank Xu
?
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
Shengyou Fan
?
透過 JetBrains 及 Google 兩邊團隊的努力,Compose 已經成為跨平台 UI 的成熟解決方案。現在,在 Android、iOS、Desktop 及 Web 等平台上都可以使用 Compose 實作 UI 介面。再加上 Kotlin Multiplatform 跨平台開發的能力,kotlinx 官方跨平台套件庫的加持,在多個平台共享業務邏輯變得更加容易。兩者雙箭合一,能最大化共享 UI 及業務邏輯。在這場分享中,將從業務邏輯的共用開始,一路從 Server-Side、兩個 Mobile 平台到 Desktop,示範如何透過 Kotlin Multiplatform 和 Compose Multiplatform 的綜合應用,在多個平台上建立統一的前端和後端應用。聽完這場分享後,將能更深入地了解 Kotlin Multiplatform 生態系,並學習在多平台上共享前後端程式碼的開發流程與技術細節。
透過 Windows Azure Mobile Services 開發各平台 Apps
透過 Windows Azure Mobile Services 開發各平台 Apps
Eric ShangKuan
?
f
Node Web开发实战
Node Web开发实战
fengmk2
?
静态项目管理工具 - opm
静态项目管理工具 - opm
goto100
?
通行证项目技术分享
通行证项目技术分享
Tony Deng
?
Servlet & JSP 教學手冊第二版 - 課後練習解答
Servlet & JSP 教學手冊第二版 - 課後練習解答
Justin Lin
?
Servlet & JSP 教學手冊第二版
Script with engine
Script with engine
Webrebuild
?
Exodus2 大局观
Exodus2 大局观
wang hongjiang
?
Open Api&Sip
Open Api&Sip
cenwenchu
?
Open Api
非常靠谱 Html 5
非常靠谱 Html 5
Tony Deng
?
More Related Content
Similar to Asp net原理
(20)
Berserk js
Berserk js
taobao.com
?
钟志 第八期Web标准化交流会
钟志 第八期Web标准化交流会
Zhi Zhong
?
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
Li JianYe
?
第一部分主要是对运维平台的思考、系统演化方式,以及用谤耻产测/谤补颈濒蝉开发项目时的收获;第二部分是结合自己的工作谈谈单页面应用开发中的技术思路
六步教你学会简单搁尘颈
六步教你学会简单搁尘颈
yiditushe
?
Node Web开发实战
Node Web开发实战
fengmk2
?
Node Web开发实战
利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek
Johnson Gau
?
SignalR是基於ASP.NET所發展的一項即時通訊技術, 幫你整合了各種通訊協定, 只要用一種統一的方式就可在網頁/APP/Windows form 間進行即時通訊, 符合目前資料在雲端, 應用程式在個平台上跑的目標
闯补惫补华为面试题
闯补惫补华为面试题
yiditushe
?
廖雪峰 Saa s ovp
廖雪峰 Saa s ovp
drewz lin
?
异步编程与浏览器执行模型
异步编程与浏览器执行模型
keelii
?
someone's pptx
使用狈辞诲别闯厂构建静态资源管理系统
使用狈辞诲别闯厂构建静态资源管理系统
Frank Xu
?
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
Shengyou Fan
?
透過 JetBrains 及 Google 兩邊團隊的努力,Compose 已經成為跨平台 UI 的成熟解決方案。現在,在 Android、iOS、Desktop 及 Web 等平台上都可以使用 Compose 實作 UI 介面。再加上 Kotlin Multiplatform 跨平台開發的能力,kotlinx 官方跨平台套件庫的加持,在多個平台共享業務邏輯變得更加容易。兩者雙箭合一,能最大化共享 UI 及業務邏輯。在這場分享中,將從業務邏輯的共用開始,一路從 Server-Side、兩個 Mobile 平台到 Desktop,示範如何透過 Kotlin Multiplatform 和 Compose Multiplatform 的綜合應用,在多個平台上建立統一的前端和後端應用。聽完這場分享後,將能更深入地了解 Kotlin Multiplatform 生態系,並學習在多平台上共享前後端程式碼的開發流程與技術細節。
透過 Windows Azure Mobile Services 開發各平台 Apps
透過 Windows Azure Mobile Services 開發各平台 Apps
Eric ShangKuan
?
f
Node Web开发实战
Node Web开发实战
fengmk2
?
静态项目管理工具 - opm
静态项目管理工具 - opm
goto100
?
通行证项目技术分享
通行证项目技术分享
Tony Deng
?
Servlet & JSP 教學手冊第二版 - 課後練習解答
Servlet & JSP 教學手冊第二版 - 課後練習解答
Justin Lin
?
Servlet & JSP 教學手冊第二版
Script with engine
Script with engine
Webrebuild
?
Exodus2 大局观
Exodus2 大局观
wang hongjiang
?
Open Api&Sip
Open Api&Sip
cenwenchu
?
Open Api
非常靠谱 Html 5
非常靠谱 Html 5
Tony Deng
?
Berserk js
Berserk js
taobao.com
?
钟志 第八期Web标准化交流会
钟志 第八期Web标准化交流会
Zhi Zhong
?
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
Li JianYe
?
六步教你学会简单搁尘颈
六步教你学会简单搁尘颈
yiditushe
?
Node Web开发实战
Node Web开发实战
fengmk2
?
利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek
Johnson Gau
?
闯补惫补华为面试题
闯补惫补华为面试题
yiditushe
?
廖雪峰 Saa s ovp
廖雪峰 Saa s ovp
drewz lin
?
异步编程与浏览器执行模型
异步编程与浏览器执行模型
keelii
?
使用狈辞诲别闯厂构建静态资源管理系统
使用狈辞诲别闯厂构建静态资源管理系统
Frank Xu
?
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
Shengyou Fan
?
透過 Windows Azure Mobile Services 開發各平台 Apps
透過 Windows Azure Mobile Services 開發各平台 Apps
Eric ShangKuan
?
Node Web开发实战
Node Web开发实战
fengmk2
?
静态项目管理工具 - opm
静态项目管理工具 - opm
goto100
?
通行证项目技术分享
通行证项目技术分享
Tony Deng
?
Servlet & JSP 教學手冊第二版 - 課後練習解答
Servlet & JSP 教學手冊第二版 - 課後練習解答
Justin Lin
?
Script with engine
Script with engine
Webrebuild
?
Exodus2 大局观
Exodus2 大局观
wang hongjiang
?
Open Api&Sip
Open Api&Sip
cenwenchu
?
非常靠谱 Html 5
非常靠谱 Html 5
Tony Deng
?
Asp net原理
1.
Asp.Net 原理
2.
大纲
3.
Asp.Net 初使化 AppDomain .NET AppDomain AppDomain
4.
隔離 缷載 安全 配置 AppDomain
5.
如何跨域存取? AppDomain AppDomain System.MarshalByRefObject
6.
Asp.Net 初使化 AppDomain .NET AppDomain AppDomain ASP.NET ApplicationHost + CreateApplicationHost(Type
hostType, string virtualDir, string physicalDir ) : object hostType 必須繼承自 System.MarshalByRefObject
7.
hostType載入組件的方式 Global Assembly Cache 網站目錄的bin資料夾 %windir%assembly
8.
ASP.NET如何處理收到的要求 ASP.NETClient Request Response System.Web.HttpRuntime + ProcessRequest (
HttpWorkerRequest wr ) : void HttpContext 建立 HttpWorkerReuest 建立 呼叫方法 HttpApplication 建立 指派
9.
HttpContext Request Response User Handler Cache SessionServer Application Profile
10.
Response Request
11.
Request Form Cookies Header PostFile…….
12.
Response StatusCode Cookies Header Output…….
13.
Response StatusCode Cookies Header Output ……. Request Form Cookies Header PostFile …….
14.
Server如何建立Cookie Client ASP.NET Request Response +
Cookie
16.
Cookieless http://MySite.com/MyWebApplication/(A(XXXX)S(XXXX)F(XXXX))/home.aspx Anonymous-ID Session-ID Forms Authentication ticket
17.
下載檔案名稱變亂碼 //使用UrlPathEncode編碼 string fileName =
Server.UrlPathEncode("檔 案 名稱.doc"); //瀏覽器解晰後,會自動解晰為正確的檔案名稱 string contentDisposition = string.Format("attachment; fileName={0}", fileName); Response.AddHeader("Content-Disposition", contentDisposition);
18.
瀏覽器類型 Client ASP.NET Header:User-Agent Response 參考連結:HOW TO:在
ASP.NET Web 網頁中偵測瀏覽器類型 xxx.Browser 1 2 3
19.
瀏覽器類型 xxx.Browser 路徑:%windir%Microsoft.NETFrameworkv4.0.30319ConfigBrowsers
20.
瀏覽器類型 參考連結:HttpBrowserCapabilities 類別 <browser id="Chrome"
parentID="WebKit"> <capabilities> <!-- 預設為fale,未設定的話就會變成不支援Cookie了 --> <capability name="cookies" value="true" /> … </capabilities> </browser>
21.
HttpApplication HttpApplicationPool HttpApplication HttpApplication HttpApplication HttpApplication HttpApplication HttpApplicationFactory ( class ) 獲取可用的
HttpApplication HttpRuntime 取得HttpApplication 取得 HttpApplication 每個 HttpApplication 物件 僅能處理一個要求,不需考 慮併行處理的問題 。 1 2
22.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 Client ASP.NET Response Httpapplication pipeline Request 1 2 3 取得狀態 執行處理程式
23.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 1 2 3 4 5 6 7 8 9 10 11 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 2 3 4 5 6 7 8 9 10 11 PreSendRequestHeaders PreSendRequestContent
24.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 1
25.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 1 BeginReqeust ASP.NET 處理工作的進入點 處理工作的開始
26.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 2 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 2
27.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 2 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 2 AuthenticateRequest PostAuthenticateRequest 檢查使用者的身份
已檢查使用者的身份並設定: - HttpContext.User.Identity.IsAuthenticated 身份驗證
28.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 3 3
29.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 3 3 AuthorizeRequest PostAuthorizeRequest 權限檢查
已檢查完權限 - 若無權限則直接跳至 EndRequest 授權
30.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 4 4
31.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event ResolveRequestCache PostResolveRequestCache 取得以前快取的處理結果 -
若快取過,則回傳快取結果 已完成快取的取得工作 解晰快取
32.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 5 5
33.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 5 5 PostMapRequestHandler ASP.NET 已對應目前要求至適當的 事件處理常式
(event hanlder) - 對應至 HttpContext.Handler 映對處理程式
34.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 6 6
35.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 6 6 取得狀態 AcquireRequestState PostAcquireReqestState 取得之前儲存的使用者資料 -
一般用於Session 已取得使用者資料
36.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 7 7
37.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 7 7 執行處理程式 PreRequestHanlderExecute PostRequestHanlderExecute 準備執行處理常式
处理常式已执行完毕
38.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 8 8
39.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 8 8 發佈狀態 ReleaseRequestState PostReleaseRequestState 儲存目前的狀態資料
目前的状态资料已储存
40.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 9 9
41.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 9 9 更新快取 UpdateRequestCache PostUpdateRequestCache 更新需要快取的內容
目前的快取已更新
42.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 10 10
43.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 10 10 記錄要求 LogRequest PostLogRequest 將這次的要求記錄至日誌內
已將這次的要求記錄至日誌內 需使用 ASP.NET 4.0 以上的版本
44.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 11 11
45.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 11 11 EndRequest 將處理結果送至Client端 發送要求
46.
BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 Pipeline Event 11 11 取得要求 HttpApplication pipeline
小結 取得使用者資料 取得頁面結果 更新使用者資料 回傳結果- HttpContext.Item為不同事件傳遞資料的容器 - 自訂方式需透過IHttpModule 或 Global.asax 記錄要求
47.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 ResolveRequestCache UpdateRequestCache OutputCacheModule 管理快取的輸出 更新需要快取的內容 取得以前快取的處理結果
48.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 AcquireRequestState ReleaseRequestState SessionStateModule 管理Session的狀態 儲存目前的Session 取得之前儲存的Session EndRequest 將處理結果送至Client端 Session State Store Provider InProc SQL
Server State Server Custom
49.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 AcquireRequestState ProfileModule 管理個人化資料 取得profile節點的資料 EndRequest 將處理結果送至Client端 Config
50.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 AnonymousIdentificationModule 管理個人化資料 給予使用者一個唯一的匿名識別 PostAuthenticateRequest
51.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 AnonymousIdentificationModule 管理個人化資料 給予使用者一個唯一的匿名識別 PostAuthenticateRequest <configuration> <system.web> <anonymousIdentification enabled="true"/> </system.web> </ configuration> Web.Config
设定方式
52.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 FormAuthenticationModule 表單驗證 進行使用者的驗證處理 AuthenticateRequest EndRequest 是 此頁是否為 LoginUrl 將處理結果送至Client端 否
53.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 FormAuthenticationModule 表單驗證 進行使用者的驗證處理 AuthenticateRequest EndRequest 是 此頁是否為 LoginUrl 將處理結果送至Client端 否 Web.Config 设定方式 <system.web> <authentication mode="Forms"> <forms
loginUrl="logon.aspx" name=".ASPXFORMSAUTH"> </forms> </authentication> </system.web>
54.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 RoleManagerModule Context.User = new
RolePrincipal(context.User.Identity); 建立 Httpcontext.User (GenericPrincipal 類別) PostAuthorizeRequest EndRequest 建立Cookie存放資訊 AuthenticateRequest ForumsAuthenticationModule PostAuthenticateRequest Context.User = new GenericPrincipal( …. ) 覆蓋 Httpcontext.User (RolePrincipal 類別) Context.User.IsInRole( … ) RoleManagerModule 透過 Cookie 確認 角色權限
55.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 WindowsAuthenticationModule Windows驗證 進行使用者的驗證處理 AuthenticateRequest
56.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 WindowsAuthenticationModule Windows驗證 進行使用者的驗證處理 AuthenticateRequest Web.Config 设定方式 <system.web> <authentication mode="Windows"> </authentication> </system.web>
57.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 UrlAuthorizationModule Url存取授權 權限檢查 AuthorizeRequest 設定於 Web.config 文件中的 <authorization>
和 <location>
58.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 UrlAuthorizationModule Url存取授權 權限檢查 AuthorizeRequest Web.Config 设定方式 <configuration> <location path="bobsSecret.aspx"> <system.webServer> <security> <authorization> <remove
users="" roles="BobAndFriends" verbs="" /> <add accessType="Allow" users="Bob" /> </authorization> </security> </system.webServer> </location> </configuration>
59.
身份驗證 授權 解晰快取 映對處理程式 發佈狀態 更新快取 記錄要求 發送要求 取得狀態 執行處理程式 權限檢查 AuthorizeRequest FileAuthorizationModule 檔案存取授權 只適用於Windows的身份驗證 Access Control List 不驗證靜態檔案(
.html , .img…等)
60.
HttpModule 設定檔 machine.config web.config 全域
单一站台
61.
machine.config 路徑:%windir%Microsoft.NETFrameworkASP.NET 版本Config
62.
machine.config 路徑:%windir%Microsoft.NETFrameworkASP.NET 版本Config
63.
HttpModule註冊方式 <system.webServer> <modules> <add name="MyHttpModule" type="ClassLibrary1.SyncModule,ClassLibrary1"/> </modules> </system.webServer> namespace ClassLibrary1 { public
class SyncModule : IHttpModule { … } }
64.
HttpModule註冊方式 <system.webServer> <modules> <add name="MyHttpModule" type="ClassLibrary1.SyncModule,ClassLibrary1"/> </modules> </system.webServer> namespace ClassLibrary1 { public
class SyncModule : IHttpModule { … } }
65.
IIS 7- 註冊全域Http
Module的兩種方式 ApplicationHost.config <globalModules> ………… </globalModules > IIS 管理介面 參考連結:Global Modules <globalModules>
66.
不使用組態檔註冊HttpModule [assembly: PreApplicationStartMethod(typeof(NameSpace.MyClass), "MyMethod")] public
static class MyClass { public static void MyMethod() { //… } } 參考連結:PreApplicationStartMethodAttribute 類別
67.
不使用組態檔註冊HttpModule HttpApplicationFactory ( class ) 網站 啟動 HttpApplication 建立 一般
*.config 動態 Assembly 登錄 HttpModule
68.
不使用組態檔註冊HttpModule [assembly: PreApplicationStartMethod(typeof(NameSpace.MyClass), "MyMethod")] public
static class MyClass { public static void MyMethod() { //… } } 參考連結:PreApplicationStartMethodAttribute 類別 注意事項 會在 動態編譯 和 Applcation_Start 前執行 需使用 .NET Framework 3.5 以上的版本 必須是 public 和 static
69.
如何取得HttpModules HttpApplication httpApps =
HttpContext.ApplicationInstance; HttpModuleCollection httpModuleCollections = httpApps.Modules;
70.
global.asax 中 HttpApplication事件的自動登錄 protected
void Application_事件名稱()
71.
protected void Application_事件名稱() BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest Event
72.
protected void Application_PostAuthenticateRequest
() BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest Event PreSendRequestHeaders PreSendRequestContent
73.
Event protected void Application_PostAuthenticateRequest
() BeginReuest AuthenticateRequest PostAuthenticateRequest AuthorizeRequest PostAuthorizeRequest ResolveRequestCache PostResolveRequestCache PostMapRequestHandler AcquireRequestState PostAcquireReqestState PreRequestHanlderExecute PostRequestHanlderExecute ReleaseRequestState PostReleaseRequestState UpdateRequestCache PostUpdateRequestCache LogRequest PostLogRequest EndRequest 注意事項 必須是 System.EventHandler 存取的事件必須為 public
74.
參考資料 ? Asp.Net 本質論(書) ?
OutputCacheProvider OutputCache的一点点认识
Editor's Notes
#5:
隔離:不同應用程式定義域之間不能直接去存去存取,跨應用程式定義域存取的物件必須衍生自System.MarshalByRefObject 缷載:被載入的組件只能以應用程式定義域為單位缷載 安全:以應用程式定義域為邊界的安全機制 配置:以應用程式定義域為邊界的程式配置
#6:
隔離:不同應用程式定義域之間不能直接去存去存取,跨應用程式定義域存取的物件必須衍生自System.MarshalByRefObject 缷載:被載入的組件只能以應用程式定義域為單位缷載 安全:以應用程式定義域為邊界的安全機制 配置:以應用程式定義域為邊界的程式配置
#9:
HttpContext 處理完每一次的要求之後,會被丟棄,新的要求會再建立一個新的 HttpApplication 內會有處理管線讓程式人員有擴充的機制
#61:
FileAuthorizationModule 驗證靜態檔案的工作會交由IIS,而不是aspnet_isapi.dll(HttpModule才會由它處理),因此預設只能處理動態檔案(*.aspx , *.ascx),但都要經由ACL去做權限驗證