溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET構(gòu)架與安全機(jī)制知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2021-12-06 11:44:30 來源:億速云 閱讀:125 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“ASP.NET構(gòu)架與安全機(jī)制知識(shí)點(diǎn)有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“ASP.NET構(gòu)架與安全機(jī)制知識(shí)點(diǎn)有哪些”吧!

Http請(qǐng)求處理流程概述

思考“為什么在地址欄輸入www.tracefact.net就可以看到張子陽的個(gè)人空間?”,類似于思考“為什么蘋果是往地上掉不是往天上飄?”。對(duì)于普通訪問者來說,這就像每天太陽東邊升起西邊落下一樣是理所當(dāng)然的;對(duì)于很多程序員來說,認(rèn)為這個(gè)與己無關(guān),不過是系統(tǒng)管理員或者網(wǎng)管員的責(zé)任。畢竟,IIS是 Windows 的一個(gè)組件,又不是 ASP.NET 的一個(gè)組成部分。而實(shí)際上,從你輕拍回車到頁面呈現(xiàn)在你眼前的十分之一秒內(nèi),IIS和.Net Framework已經(jīng)做了大量的幕后工作。

你可能覺得了解這些幕后工作是如何運(yùn)作的無關(guān)緊要,作為程序員的你只要保證開發(fā)出的程序可以高效地運(yùn)行就可以了。然而,在開發(fā)過程中,你卻發(fā)現(xiàn)常常需要使用諸如 HttpContext 這樣的類。這個(gè)時(shí)候,你可曾思考過這些類的構(gòu)成和類的實(shí)體是如何創(chuàng)建的?你可能簡(jiǎn)單地回答:HttpContext代表當(dāng)前請(qǐng)求的一個(gè)上下文環(huán)境??赡阌种繧IS 、Framework、ASP.NET 是如何協(xié)同工作處理每個(gè)Http請(qǐng)求、如何區(qū)分不同的請(qǐng)求、IIS、Framework、ASP.NET三者之間的數(shù)據(jù)如何流動(dòng)么?

回答上面這些問題,首先需要了解IIS是如何處理頁面請(qǐng)求的,這也是理解 Form驗(yàn)證模式和Windows 驗(yàn)證模式 的基礎(chǔ)。

Http請(qǐng)求剛剛到達(dá)服務(wù)器的時(shí)候

當(dāng)服務(wù)器接收到一個(gè) Http請(qǐng)求的時(shí)候,IIS 首先需要決定如何去處理這個(gè)請(qǐng)求(NOTE:服務(wù)器處理一個(gè).htm頁面和一個(gè).aspx頁面肯定是不一樣的么)。那IIS依據(jù)什么去處理呢?―― 根據(jù)文件的后綴名。

服務(wù)器獲取所請(qǐng)求的頁面(NOTE:也可以是文件,比如 jimmy.jpg)的后綴名以后,接下來會(huì)在服務(wù)器端尋找可以處理這類后綴名的應(yīng)用程序,如果IIS找不到可以處理此類文件的應(yīng)用程序,并且這個(gè)文件也沒有受到服務(wù)器端的保護(hù)(NOTE:一個(gè)受保護(hù)的例子就是 App_Code中的文件,一個(gè)不受保護(hù)的例子就是你的js腳本),那么IIS將直接把這個(gè)文件返還給客戶端。

能夠處理各種后綴名的應(yīng)用程序,通常被稱為 ISAPI 應(yīng)用程序(NOTE:Internet Server Application Programe Interface,互聯(lián)網(wǎng)服務(wù)器應(yīng)用程序接口)。雖然這 ISAPI 聽上去還挺氣派,也算是“應(yīng)用程序”呢,但仔細(xì)看看它的全稱就明白了:它實(shí)際上只是一個(gè)接口,起到一個(gè)代理的作用,它的主要工作是映射所請(qǐng)求的頁面(文件) 和與此后綴名相對(duì)應(yīng)的實(shí)際的處理程序。

1. HttpRuntime將Http請(qǐng)求轉(zhuǎn)交給 HttpApplication,HttpApplication代表著程序員創(chuàng)建的Web應(yīng)用程序。HttpApplication創(chuàng)建針對(duì)此Http 請(qǐng)求的 HttpContext對(duì)象,這些對(duì)象包含了關(guān)于此請(qǐng)求的諸多其他對(duì)象,主要是HttpRequest、HttpResponse、 HttpSessionState等。這些對(duì)象在程序中可以通過Page類或者Context類進(jìn)行訪問。

2. 接下來Http請(qǐng)求通過一些Module,這些Module可以做一些執(zhí)行某個(gè)實(shí)際工作前的事情。

3. 在這一步,執(zhí)行實(shí)際的一些操作,通常也就是.aspx頁面所完成的業(yè)務(wù)邏輯。

4. Http請(qǐng)求再一次回到Module,此時(shí)Module可以做一些某個(gè)工作已經(jīng)完成了之后的事情。

NOTE:注意我用紅色標(biāo)識(shí)的字,然后回想一下:ASP.NET 中是不是有眾多的 Inserting 、Inserted 之類成對(duì)的事件?其實(shí),這里講述的就是為什么ASP.NET可以將一個(gè)Insert操作分成前后兩部分,然后再分別進(jìn)行事件攔截的幕后原理。

到此,相信大家對(duì)“ASP.NET構(gòu)架與安全機(jī)制知識(shí)點(diǎn)有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI