.NET Compilation模塊
成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、樂安網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價格優(yōu)惠性價比高,為樂安等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
在為一個請求提供服務(wù)之前,ASP.NET首先需要將代碼編譯為合適的程序集。這些程序集文件以.dll作為擴(kuò)展名。利用IIS 7.0中的ASP.NET模塊,可以控制服務(wù)器如何編譯ASP.NET代碼。
.NET Globalization模塊
全球化是指開發(fā)人員設(shè)置應(yīng)用程序時,需要讓應(yīng)用程序能夠在全球化多種語言文化中使用,并且能夠在多個地區(qū)運(yùn)行。通過完成本地化過程,我們可以對全球化應(yīng)用程序進(jìn)行定制,確定應(yīng)用程序運(yùn)行的具體語言和具體地點(diǎn)。利用全球化過程,我們可以令一個代碼庫適用于多個地區(qū),同時還能夠提供特定地區(qū)的語言和文化背景信息。
.NET Trust Levels 模塊
ASP.NET代碼訪問安全(code access security,CAS)策略是通過設(shè)置應(yīng)用程序的信任級別來實(shí)現(xiàn)的。CAS可以確定授予服務(wù)器中某個應(yīng)用程序的權(quán)限。如果需要部署的代碼獲得了訪問服務(wù)器的提升權(quán)限,那么如何設(shè)置CAS就成了一項(xiàng)非常重要的工作。如果需要部署的代碼修改了服務(wù)器的文件系統(tǒng),那么為了防止錯誤的訪問發(fā)生,必須嚴(yán)格控制CAS。
CAS具有兩種信任類型:完全信任(full trust)和部分信任(partial trust)如果一個應(yīng)用程序具有完全信任權(quán)限,那么這個應(yīng)用程序就可以訪問服務(wù)器中的所要資源,完成所有操作,在這種情況下,這個應(yīng)用程序只能由操作系統(tǒng)的安全設(shè)置來限制其權(quán)限。
在默認(rèn)設(shè)置中,我們可以使用5種不同的信任級別:完全(Full)、高級(High)、中級(Medium)、低級(Low)、最?。∕inimal)。
Application Settings模塊
利用Application Settings模塊,可以在web.config文件中保存應(yīng)用程序的配置數(shù)據(jù),數(shù)據(jù)的保存格式為鍵/值對。這些設(shè)置所確定的值在整個應(yīng)用程序范圍內(nèi)有效,因此在Web應(yīng)用程序的任何位置都是有效的。修改配置數(shù)據(jù)是一項(xiàng)非常簡單的任務(wù),因?yàn)檫@些配置數(shù)據(jù)都集中保存在配置文件中。
必須牢記:對 .NET 設(shè)置進(jìn)行任何修改都會導(dǎo)致一次 appDomain 回收,因此會影響到整個服務(wù)器。
連接字符串
連接字符串可以用來在應(yīng)用程序和數(shù)據(jù)庫之間建立通信連接。連接字符串中不但包括服務(wù)器、數(shù)據(jù)庫名、用戶,還包括應(yīng)用程序與數(shù)據(jù)庫進(jìn)行通信時使用的密碼。
計(jì)算機(jī)密鑰
ASP.NET使用計(jì)算機(jī)密鑰來保護(hù)Forms身份驗(yàn)證的cookie數(shù)據(jù)和頁面視圖的狀態(tài)數(shù)據(jù)。計(jì)算機(jī)密鑰本身是一種散列值,可以用于對cookie數(shù)據(jù)和頁面視圖狀態(tài)數(shù)據(jù)進(jìn)行加密。計(jì)算機(jī)密鑰可以用于在進(jìn)程之外運(yùn)行會話。雖然我們可以在服務(wù)器級設(shè)置計(jì)算機(jī)密鑰,甚至可以在文件級設(shè)置計(jì)算機(jī)密鑰,但是在默認(rèn)情況下,計(jì)算機(jī)密鑰均鎖定在服務(wù)器級和網(wǎng)站級。如果一個網(wǎng)站可以運(yùn)行在多臺Web服務(wù)器中,那么這些密鑰便可以在不同的服務(wù)器之間共享。
ASP.NET使用了兩類計(jì)算機(jī)密鑰:驗(yàn)證密鑰和解密密鑰。驗(yàn)證密鑰可以用于創(chuàng)建消息驗(yàn)證代碼(Message Authentication Code,MAC),利用MAC,我們可以驗(yàn)證數(shù)據(jù)的完整性。驗(yàn)證密鑰可以附加到Forms身份驗(yàn)證cookie之后,也可以附加到視圖狀態(tài)數(shù)據(jù)之后。解密密鑰可以用于對Forms身份驗(yàn)證票證和視圖狀態(tài)數(shù)據(jù)進(jìn)行加密和解密。
如果要在多臺服務(wù)器上使用驗(yàn)證密鑰,那么需要創(chuàng)建一個單獨(dú)的驗(yàn)證密鑰,然后在多臺服務(wù)器之間共享這個驗(yàn)證密鑰。如果要在多臺服務(wù)器上使用解密密鑰,那么需要創(chuàng)建一個單獨(dú)的解密密鑰,然后在多臺服務(wù)器之間共享這個解密密鑰。
頁面及控件
ASP.NET能夠識別和處理頁面運(yùn)行過程中使用的基本元素。ASP.NET還可以支持使用定制的控件,這些定制的控件是可重用的,并且是在服務(wù)器方進(jìn)行處理的。因此,服務(wù)器代碼可以用于配置ASP.NET的Web頁面屬性。
Providers模塊
使用.NET Framework創(chuàng)建的ASP.NET和應(yīng)用程序可以使用數(shù)據(jù)庫保存信息。為了將應(yīng)用程序映射到數(shù)據(jù)庫架構(gòu),需要使用一個名為Provider的軟件模塊。對于應(yīng)用程序和數(shù)據(jù)庫來說,Provider軟件模塊等價于硬件抽象層。通過使用Provider模塊,IIS 7.0可以安裝定制的數(shù)據(jù)庫訪問模塊,也支持修改標(biāo)準(zhǔn)的ASP.NET數(shù)據(jù)庫訪問模塊。可以使用3種不同的數(shù)據(jù)庫訪問角色:.NET Roles、.NET Users、.NET Profile。
.NET Roles角色的數(shù)據(jù)庫提供程序可以創(chuàng)建授權(quán)存儲、SQL角色以及Windows令牌提供程序類型。.NET Users數(shù)據(jù)庫提供程序可以用于創(chuàng)建Active Directory成員類型,還可以用于創(chuàng)建SQL成員資格提供程序類型。.NET Profile 可以用于創(chuàng)建SQL配置文件提供程序。
會話狀態(tài)
IIS 7.0使用會話狀態(tài)來跟蹤用戶訪問網(wǎng)站過程中所瀏覽的頁面,通過為每個用戶創(chuàng)建一個會話ID,IIS可以區(qū)分相關(guān)用戶。HTTP是一種無狀態(tài)協(xié)議,因此,服務(wù)器不需要保存以前為請求提供服務(wù)過程中使用的變量的信息。IIS 7.0可以使用ASP.NET會話狀態(tài)保存數(shù)據(jù)和提取數(shù)據(jù),這樣可以為在Web網(wǎng)站中漫游的用戶提供一些信息。
模式
我們可以使用以下5種模式設(shè)置會話狀態(tài):
(1)Not Enabled模式
在該模式下,Web網(wǎng)站沒有使用會話狀態(tài)。
(2)In Process模式
在該模式下,內(nèi)存中的會話狀態(tài)是與應(yīng)用程序的工作進(jìn)程綁定的,In Process模式也是IIS 7.0的默認(rèn)模式。在系統(tǒng)為會話狀態(tài)提供響應(yīng)時,這種模式下系統(tǒng)的響應(yīng)速度最快。然而使用In Process會話狀態(tài)的缺點(diǎn)是會話中需要保存比較多的數(shù)據(jù),因此需要消耗比較多的內(nèi)存,最終可能會導(dǎo)致服務(wù)器性能下降。
如果在In Process模式下保存會話狀態(tài),那么必須牢記:當(dāng)回收工作進(jìn)程時,保存在內(nèi)存中的所有數(shù)據(jù)都將丟失。如果應(yīng)用程序需要繼續(xù)使用會話狀態(tài)數(shù)據(jù),那么就必須使用其他的會話狀態(tài)模式。
IIS 7.0安裝了Aspnet_state.exe服務(wù)。在默認(rèn)情況下,該服務(wù)沒有運(yùn)行。如果需要在In Process模式下保存會話狀態(tài),那么就必須運(yùn)行Aspnet_state.exe服務(wù)。
(3)Custom模式
使用Custom模式保存會話狀態(tài)時,進(jìn)程外會話可以使用一個自定義的處理程序來創(chuàng)建一個與數(shù)據(jù)庫的連接。使用自定義的處理程序時,會話狀態(tài)可以保存在MS SQL之外的數(shù)據(jù)庫中,如Oracle或Access。此時還可以使用一個不是由.NET Framework提供的數(shù)據(jù)庫架構(gòu)來管理會話狀態(tài)。為了使用自定義的處理程序,必須在<sessionState> /<providers>集合中實(shí)現(xiàn)一個完整的會話狀態(tài)提供程序。
(4)State Server模式
第二種在進(jìn)程外保存會話狀態(tài)的方法是使用State Server模式。在State Server模式中,我們既可以令狀態(tài)服務(wù)進(jìn)程運(yùn)行于同一臺服務(wù)器上,也可以令狀態(tài)服務(wù)進(jìn)程運(yùn)行于一個外部服務(wù)器中。以State Server模式維護(hù)數(shù)據(jù)時,需要一個單獨(dú)的工作進(jìn)程,這個工作進(jìn)程與ASP.NET應(yīng)用程序運(yùn)行的工作進(jìn)程是分離的。
如果狀態(tài)服務(wù)程序與Web網(wǎng)站運(yùn)行于同一臺服務(wù)器上,那么Web網(wǎng)站可以支持運(yùn)行Web garden。如果Web網(wǎng)站運(yùn)行于多臺服務(wù)器上,那么必須指定一臺服務(wù)器運(yùn)行狀態(tài)服務(wù)程序,這臺服務(wù)器可以共享所有Web服務(wù)器的狀態(tài)數(shù)據(jù)。
與In Process模式類似,State Server模式也需要使用Aspnet_state.exe服務(wù)。
(5)SQL Server模式
最后一種保存會話狀態(tài)的模式是SQL Server模式,這種模式需要使用SQL Server數(shù)據(jù)庫。SQL Server模式與State Server模式類似:可以與Web服務(wù)器運(yùn)行于同一臺服務(wù)器上,此時這臺服務(wù)器可以支持一個Web garden;也可以運(yùn)行于一個外部服務(wù)器上,此時這臺服務(wù)器可以支持一個Web Farm。優(yōu)勢:即使工作進(jìn)程被回收,會話數(shù)據(jù)仍然存在。
為了使用SQL Server模式保存會話狀態(tài)數(shù)據(jù),我們同樣需要令A(yù)spnet_state.exe服務(wù)自動啟動運(yùn)行。此外,SQL Server模式還需要運(yùn)行InstallSqlState.sql腳本來配置會話狀態(tài)。該腳本保存在C:\Windows\Microsoft.NET\Framework\v2.0.50727目錄下。
與cookie有關(guān)的設(shè)置
Cookie是保存了用戶信息的文本文件,這些用戶信息包括身份驗(yàn)證信息,還記錄了用戶瀏覽網(wǎng)站的偏好。跟蹤會話狀態(tài)的方法之一就是使用cookie。Cookie都保存在客戶的計(jì)算機(jī)中,由Web服務(wù)器使用。當(dāng)客戶向服務(wù)器發(fā)出請求時,cookie將被放在HTTP頭中,隨請求一同發(fā)給服務(wù)器。
我們可以將cookies設(shè)置為使用以下4種模式之一:
(1)Auto Detect模式
如果瀏覽器支持cookie,那么Auto Detect模式將啟用cookie。如果一臺移動設(shè)備連接到了Web服務(wù)器,同時這臺移動設(shè)備禁用了cookie,那么就無法使用cookie。如果某臺臺式計(jì)算機(jī)或筆記本計(jì)算機(jī)連接到了Web服務(wù)器,同時這臺臺式計(jì)算機(jī)或筆記本計(jì)算機(jī)禁用了cookie,那么會話狀態(tài)將保存在URL中。
如果使用了Auto Detect模式,那么需要將會話ID設(shè)置為可重新生成的。這樣,***者就不會有充分的時間來獲取cookie,也不會有充足的時間利用cookie來***Web服務(wù)器并非法獲取服務(wù)器中的內(nèi)容。Cookie的默認(rèn)存活時間是20min,可以修改這個時間屬性,使cookie的默認(rèn)存活時間減少到一個安全水平。
(2)Use Cookies模式
如果使用Use Cookies模式,那么,可以在會話過程中利用會話cookie,從而把會話信息和用戶信息關(guān)聯(lián)起來。
(3)Use Device Profile模式
如果客戶瀏覽器支持使用cookie,那么Use Device Profile模式可以用cookie保存會話狀態(tài)。如果客戶不瀏覽器支持使用cookie,那么該模式無法使用cookie。如果設(shè)備支持使用cookie,那么無論用戶怎樣設(shè)置cookie,會話狀態(tài)仍然將使用cookie。
會話ID應(yīng)該設(shè)置為可重新生成的,其原因與Auto Detect模式相同。
(4)Use URI模式
用過使用URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識符)保存會話狀態(tài),可以將會話ID作為一個查詢字符串,嵌入到URI中。URI隨即被重定向到原先的URL。在整個會話過程中都需要使用上述URI。
盡管Use URI模式消除了cookie存在的缺陷,但是Use URI模式仍然具有自身的缺陷。Web頁面是不能加入書簽的,而且,在不丟失會話狀態(tài)的情況下,我們無法使用絕對URL。
分享題目:ASP.NET模塊
本文地址:http://jinyejixie.com/article36/gpeipg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、App設(shè)計(jì)、網(wǎng)站內(nèi)鏈、關(guān)鍵詞優(yōu)化、響應(yīng)式網(wǎng)站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)