偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

ASP.NET鑒別和授權(quán)

開(kāi)發(fā) 后端
本文介紹ASP.NET鑒別和授權(quán),ASP.NET提供了許多鑒別和授權(quán)機(jī)制,它們與IIS、。NET Framework以及操作系統(tǒng)底層的安全服務(wù)是相連的。

Web應(yīng)用程序會(huì)遭到幾種類型的攻擊,其破壞效果會(huì)因程序本身的不同而不同。因此,安全性是與程序的用法和用戶與其功能交互的方式密切相關(guān)的。那么,應(yīng)該如何來(lái)設(shè)計(jì)和編碼ASP.NET應(yīng)用程序呢?

從應(yīng)用程序的角度來(lái)看,安全性通常指對(duì)用戶的鑒別以及對(duì)系統(tǒng)資源授予訪問(wèn)權(quán)限。ASP.NET提供了許多鑒別和授權(quán)機(jī)制,它們與IIS、。NET Framework以及操作系統(tǒng)底層的安全服務(wù)是相連的。

當(dāng)一個(gè)客戶端發(fā)出一個(gè)Web請(qǐng)求時(shí),將發(fā)生下列順序的鑒別和授權(quán)事件:
1.IIS鑒別
2.ASP.NET鑒別
3.ASP.NET授權(quán)

ASP.NET鑒別

如果頁(yè)面是可以被察看的,而請(qǐng)求來(lái)自一個(gè)非受限的IP地址,IIS將通過(guò)預(yù)定義的鑒別機(jī)制來(lái)對(duì)調(diào)用請(qǐng)求進(jìn)行鑒別。首先IIS確保請(qǐng)求來(lái)自一個(gè)可信任的IP 地址。如果不是,請(qǐng)求將以HTTP錯(cuò)誤403.6而被拒絕。第二個(gè)措施是檢查被請(qǐng)求的資源是否可以被讀或被瀏覽。如果不是,請(qǐng)求將以HTTP錯(cuò)誤 403.2而被拒絕。然后IIS嘗試使用Intergrated、Digest或Basic方法來(lái)鑒別這個(gè)調(diào)用。如果用到了Windows的 Intergrated方法,Kerberos或NTLM將被使用。如果請(qǐng)求通過(guò)了這一關(guān),就輪到ASP.NET出場(chǎng)了。

ASP.NET支持三種類型的鑒別方法:Windows、Forms和Passport.如果ASP.NET被配置為Windows鑒別,則它不需要其它的步驟,而是直接承認(rèn)任何從IIS傳來(lái)的安全標(biāo)記。如果ASP.NET被配置為Forms鑒別,將使用一個(gè)HTML表單提示用戶輸入信任資料。通過(guò)用戶ID和密碼在存儲(chǔ)的合法用戶列表中查尋。應(yīng)用程序可以任意選擇最合適的存儲(chǔ)機(jī)制,包括SQL Server數(shù)據(jù)庫(kù)或Active Directory服務(wù)。最后如果ASP.NET被配置為Passport鑒別,用戶將被轉(zhuǎn)入一個(gè)Passport Web站點(diǎn)并由Passprot服務(wù)來(lái)鑒別。

第四中類型的鑒別是None,這意味著ASP.NET并不執(zhí)行自己的鑒別而是完全依靠已經(jīng)由IIS執(zhí)行的鑒別。在這種情況下,匿名用戶可以連接進(jìn)來(lái),而訪問(wèn)資源使用的是ASP.NET賬戶。將ASP.NET鑒別模式設(shè)定為None并不妨礙程序?qū)崿F(xiàn)自己的鑒別層。

在Web.config文件中通過(guò)使用區(qū)段來(lái)選擇ASP.NET鑒別機(jī)制。默認(rèn)的鑒別模式是Windows.

ASP.NET授權(quán)

當(dāng)然,鑒別只是意味著用戶被確認(rèn)為是其本身。下一步是確認(rèn)用戶擁有足夠的權(quán)限來(lái)訪問(wèn)請(qǐng)求的資源。

在鑒別完之后,ASP.NET將校驗(yàn)調(diào)用是否被授權(quán)用以訪問(wèn)請(qǐng)求的資源來(lái)執(zhí)行操作。一對(duì)HTTP模塊提供了這項(xiàng)服務(wù):UrlAuthorizationModule和 FileAuthorizationModule.前者確保Web.config文件中區(qū)段中的授權(quán)規(guī)則完全實(shí)現(xiàn)。后者在使用Windows鑒別時(shí)來(lái)檢查調(diào)用是否有足夠的訪問(wèn)許可來(lái)訪問(wèn)請(qǐng)求的資源。在這種情況下,通過(guò)比較訪問(wèn)資源的控制列表(ACL)調(diào)用的標(biāo)記來(lái)執(zhí)行校驗(yàn)。在處理過(guò)程中,也可以用。NET roles來(lái)改變調(diào)用者的權(quán)限以便使用某個(gè)資源。

授權(quán)規(guī)則由兩部分獨(dú)立的信息組成,它們定義了哪些是允許的那些事禁止的。在區(qū)段內(nèi),標(biāo)記定義了允許的用戶、任務(wù)和操作。相反,在標(biāo)記中包含了不被允許的用戶、任務(wù)和操作。

你也許注意到鑒別模式只能在machine.config文件或在程序?qū)拥腤eb.config文件中設(shè)置,子目錄繼承了程序的鑒別模式。但是,授權(quán)設(shè)置可以在每個(gè)子目錄的Web.config文件中設(shè)置。換句話說(shuō),授權(quán)比鑒別支持更細(xì)。

基于角色的安全

如果你需要鑒別用戶,你同樣需要為他們建立個(gè)性化的頁(yè)面。這里有兩大的選擇:一是實(shí)現(xiàn)一個(gè)個(gè)人資料系統(tǒng),為每個(gè)用戶存儲(chǔ)配置信息;二是定義一些角色,把用戶映射到這些角色上。

在第一種情況下,要維護(hù)個(gè)人資料記錄,可能需要存儲(chǔ)與用戶界面有關(guān)的設(shè)置以及打開(kāi)或關(guān)閉的功能。在設(shè)計(jì)頁(yè)面時(shí),訪問(wèn)這些個(gè)人資料記錄來(lái)為當(dāng)前用戶生成相應(yīng)的頁(yè)面。

如果你不必維護(hù)每個(gè)用戶的信息,而只是要將用戶分類并維護(hù)基于每一類的信息,那基于角色的方法就顯得更好。一個(gè)角色是一個(gè)名稱——一個(gè)簡(jiǎn)短的描述性字符串——它為屬于這個(gè)角色的每個(gè)用戶定義了一組功能、用戶界面元素以及權(quán)限。

定義角色需要兩個(gè)步驟。首先,定義所有可能的角色,為每個(gè)用戶分配其中的一個(gè)或多個(gè)。這通常在數(shù)據(jù)庫(kù)層完成。典型的,你在存儲(chǔ)用戶名字和密碼的數(shù)據(jù)庫(kù)中加入一列來(lái)存儲(chǔ)每個(gè)用戶的角色。

鑒別一個(gè)用戶時(shí),其身份并沒(méi)有和任何角色信息關(guān)聯(lián)。但是,有一個(gè)功能用來(lái)來(lái)檢查某一個(gè)身份是否屬于特定的已定義角色??梢允褂肞age.User對(duì)象的IsInRole功能來(lái)檢驗(yàn)一個(gè)用戶的角色: if(User.IsInRole(“Boss”))

Response.Write(“The user is the boss”);

定義角色的第二步是將每個(gè)已鑒別的用戶與角色相關(guān)聯(lián)。要這樣做,你必須創(chuàng)建一個(gè)新的主體對(duì)象,其類型可以是普通的或與授權(quán)種類相同。通常在 Global.asax文件中處理AuthenticateRequest事件時(shí)完成: //角色是根據(jù)當(dāng)前用戶從數(shù)據(jù)庫(kù)中讀出的字符串

Context.User=new GenericPrincipal(User.Identity,role);

這時(shí),鑒別模塊能夠通過(guò)本地Web.config文件的區(qū)段來(lái)檢驗(yàn)用戶的角色。例如,一個(gè)其Web.config文件如下所示的文件夾里的頁(yè)面只能被屬于Boss角色的用戶訪問(wèn): 鑒別模塊使用IsInRole函數(shù)通過(guò)角色來(lái)授權(quán)。

保護(hù)你的應(yīng)用程序

保護(hù)一個(gè)Web應(yīng)用程序就必須保護(hù)Web服務(wù)器不受各種攻擊,但是它還需要實(shí)現(xiàn)有效的辦法來(lái)阻止對(duì)頁(yè)面的非法訪問(wèn)。ASP.NET提供了一些內(nèi)建的代碼來(lái)對(duì)用戶和操作來(lái)進(jìn)行鑒別和ASP.NET授權(quán)。以上是介紹ASP.NET鑒別和授權(quán)機(jī)制

【編輯推薦】

  1. 淺談ASP.NET應(yīng)用程序
  2. ASP.NET的預(yù)編譯應(yīng)用程序
  3. 概述ASP.NET 2.0的FormView控件
  4. 優(yōu)化ASP.NET 2.0 Profile Provider
  5. 淺析ASP.NET進(jìn)程模型配置
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-08-05 13:16:43

ASP.NET URL

2009-07-20 16:23:01

ASP.NET授權(quán)模塊

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門(mén)教程

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-27 14:46:16

XML和ASP.NET

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-22 18:03:00

ASP.NET ASP

2009-07-31 09:39:59

ASP.NET和URL

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計(jì)

2009-08-04 17:20:37

PostBack和ViASP.NET

2009-07-29 17:11:25

ASP.NET ISA

2009-08-03 14:33:02

.NET平臺(tái)c#ASP.NET

2011-05-19 09:20:21

VB.NETASP.NET

2009-08-01 20:59:08

ASP.NET服務(wù)器控ASP.NET服務(wù)器ASP.NET

2024-05-06 00:00:00

ASP.NET授權(quán)機(jī)制

2009-08-03 13:38:18

ASP.NET編程模型

2009-07-28 09:02:32

asp.net aja

2009-08-03 17:35:07

ASP.NET WebASP.NET編程工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)