成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET鑒別和授權

開發 后端
本文介紹ASP.NET鑒別和授權,ASP.NET提供了許多鑒別和授權機制,它們與IIS、。NET Framework以及操作系統底層的安全服務是相連的。

Web應用程序會遭到幾種類型的攻擊,其破壞效果會因程序本身的不同而不同。因此,安全性是與程序的用法和用戶與其功能交互的方式密切相關的。那么,應該如何來設計和編碼ASP.NET應用程序呢?

從應用程序的角度來看,安全性通常指對用戶的鑒別以及對系統資源授予訪問權限。ASP.NET提供了許多鑒別和授權機制,它們與IIS、。NET Framework以及操作系統底層的安全服務是相連的。

當一個客戶端發出一個Web請求時,將發生下列順序的鑒別和授權事件:
1.IIS鑒別
2.ASP.NET鑒別
3.ASP.NET授權

ASP.NET鑒別

如果頁面是可以被察看的,而請求來自一個非受限的IP地址,IIS將通過預定義的鑒別機制來對調用請求進行鑒別。首先IIS確保請求來自一個可信任的IP 地址。如果不是,請求將以HTTP錯誤403.6而被拒絕。第二個措施是檢查被請求的資源是否可以被讀或被瀏覽。如果不是,請求將以HTTP錯誤 403.2而被拒絕。然后IIS嘗試使用Intergrated、Digest或Basic方法來鑒別這個調用。如果用到了Windows的 Intergrated方法,Kerberos或NTLM將被使用。如果請求通過了這一關,就輪到ASP.NET出場了。

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

第四中類型的鑒別是None,這意味著ASP.NET并不執行自己的鑒別而是完全依靠已經由IIS執行的鑒別。在這種情況下,匿名用戶可以連接進來,而訪問資源使用的是ASP.NET賬戶。將ASP.NET鑒別模式設定為None并不妨礙程序實現自己的鑒別層。

在Web.config文件中通過使用區段來選擇ASP.NET鑒別機制。默認的鑒別模式是Windows.

ASP.NET授權

當然,鑒別只是意味著用戶被確認為是其本身。下一步是確認用戶擁有足夠的權限來訪問請求的資源。

在鑒別完之后,ASP.NET將校驗調用是否被授權用以訪問請求的資源來執行操作。一對HTTP模塊提供了這項服務:UrlAuthorizationModule和 FileAuthorizationModule.前者確保Web.config文件中區段中的授權規則完全實現。后者在使用Windows鑒別時來檢查調用是否有足夠的訪問許可來訪問請求的資源。在這種情況下,通過比較訪問資源的控制列表(ACL)調用的標記來執行校驗。在處理過程中,也可以用。NET roles來改變調用者的權限以便使用某個資源。

授權規則由兩部分獨立的信息組成,它們定義了哪些是允許的那些事禁止的。在區段內,標記定義了允許的用戶、任務和操作。相反,在標記中包含了不被允許的用戶、任務和操作。

你也許注意到鑒別模式只能在machine.config文件或在程序層的Web.config文件中設置,子目錄繼承了程序的鑒別模式。但是,授權設置可以在每個子目錄的Web.config文件中設置。換句話說,授權比鑒別支持更細。

基于角色的安全

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

在第一種情況下,要維護個人資料記錄,可能需要存儲與用戶界面有關的設置以及打開或關閉的功能。在設計頁面時,訪問這些個人資料記錄來為當前用戶生成相應的頁面。

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

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

鑒別一個用戶時,其身份并沒有和任何角色信息關聯。但是,有一個功能用來來檢查某一個身份是否屬于特定的已定義角色??梢允褂肞age.User對象的IsInRole功能來檢驗一個用戶的角色: if(User.IsInRole(“Boss”))

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

定義角色的第二步是將每個已鑒別的用戶與角色相關聯。要這樣做,你必須創建一個新的主體對象,其類型可以是普通的或與授權種類相同。通常在 Global.asax文件中處理AuthenticateRequest事件時完成: //角色是根據當前用戶從數據庫中讀出的字符串

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

這時,鑒別模塊能夠通過本地Web.config文件的區段來檢驗用戶的角色。例如,一個其Web.config文件如下所示的文件夾里的頁面只能被屬于Boss角色的用戶訪問: 鑒別模塊使用IsInRole函數通過角色來授權。

保護你的應用程序

保護一個Web應用程序就必須保護Web服務器不受各種攻擊,但是它還需要實現有效的辦法來阻止對頁面的非法訪問。ASP.NET提供了一些內建的代碼來對用戶和操作來進行鑒別和ASP.NET授權。以上是介紹ASP.NET鑒別和授權機制

【編輯推薦】

  1. 淺談ASP.NET應用程序
  2. ASP.NET的預編譯應用程序
  3. 概述ASP.NET 2.0的FormView控件
  4. 優化ASP.NET 2.0 Profile Provider
  5. 淺析ASP.NET進程模型配置
責任編輯:佚名 來源: IT168
相關推薦

2009-08-05 13:16:43

ASP.NET URL

2009-07-20 16:23:01

ASP.NET授權模塊

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

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-07-22 18:03:00

ASP.NET ASP

2009-07-31 09:39:59

ASP.NET和URL

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-08-04 17:20:37

PostBack和ViASP.NET

2009-07-29 17:11:25

ASP.NET ISA

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設計

2009-08-01 20:59:08

ASP.NET服務器控ASP.NET服務器ASP.NET

2024-05-06 00:00:00

ASP.NET授權機制

2009-08-03 14:33:02

.NET平臺c#ASP.NET

2011-05-19 09:20:21

VB.NETASP.NET

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編程工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品1区 | 欧美亚洲另类在线 | 亚洲精品一区国产精品 | 日韩在线欧美 | 亚洲一区不卡在线 | 成人欧美一区二区三区在线观看 | 亚洲国产成人av | 欧美黑人巨大videos精品 | 一本岛道一二三不卡区 | 91高清在线视频 | 亚洲毛片| 九九精品在线 | 国产在线视频一区二区 | 欧美精品一区免费 | 一级黄色毛片a | 在线观看第一区 | 久国产视频 | 日韩精品在线免费 | 亚洲一区二区中文字幕 | 亚洲成人av | 欧美日韩精品中文字幕 | 色综合一区二区 | 亚洲成人免费av | 成人福利影院 | 久久国内| 天天操天天摸天天干 | 最近免费日本视频在线 | 宅女噜噜66国产精品观看免费 | 最新超碰 | 欧美成视频 | 国产欧美精品一区二区三区 | 狠狠操狠狠干 | 欧美性大战xxxxx久久久 | 国产综合在线视频 | 国产欧美精品一区 | 99精品国产一区二区青青牛奶 | 日本 欧美 国产 | 紧缚调教一区二区三区视频 | 日本成人久久 | 久久成人一区 | 日韩欧美高清 |