国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net 中用戶和角色的驗證

2024-07-10 12:57:09
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

本文引用下面的 microsoft .net framework 類庫命名空間: • system.web.security
• system.web.principal

請求的安全性事件流
以下步驟簡要介紹了在客戶端發出請求時發生的事件序列: 1. 客戶端請求 iis 服務器上的一個 .aspx 頁。
2. 將客戶端憑據傳遞給 iis。
3. iis 對客戶端進行身份驗證,然后將經過身份驗證的標記隨客戶端請求一起傳送到 asp.net 工作進程。
4. 根據 iis 傳送的經過身份驗證的標記以及 web 應用程序的配置設置,asp.net 決定是否在處理請求的線程上模擬用戶。microsoft active server pages (asp) 和 asp.net 的明顯區別是,asp.net 在默認情況下不再模擬經過身份驗證的用戶。若要啟用模擬,必須在 web.config 文件中將 identity 部分中的 impersonate 屬性設置為 true。

相關配置設置
iis 在 iis 配置數據庫中保存與安全性有關的配置設置。但是,asp.net 在可擴展標記語言 (xml) 配置文件中保存安全(及其他)配置設置。雖然從安全性的角度來看,這通常可簡化應用程序的部署,但應用程序采用的安全模型要求通過其配置文件 (web.config) 來正確配置 iis 配置數據庫和 asp.net 應用程序。

以下配置部分與 asp.net 安全性有關: &#8226; <authentication> 部分
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfauthenticationsection.asp
&#8226; <authorization> 部分
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfauthorizationsection.asp
&#8226; <identity> 部分
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfidentitysection.asp
&#8226; <machinekey> 部分
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfmachinekeysection.asp

身份驗證
身份驗證是指以下過程:獲取標識憑據(如用戶名和密碼),并對照某一頒發機構來驗證這些憑據。

asp.net 提供了四個身份驗證提供程序: &#8226; 表單身份驗證
&#8226; windows 身份驗證
&#8226; passport 身份驗證
&#8226; 默認身份驗證

表單身份驗證
表單身份驗證是指以下系統:將未經身份驗證的請求重定向到一個超文本標記語言 (html) 表單,使用戶能夠在其中鍵入他們的憑據。在用戶提供憑據并提交該表單后,應用程序對請求進行身份驗證,然后系統以 cookie 的形式發出身份驗證票證。此 cookie 包含憑據或用于重新獲取標識的密鑰。瀏覽器的后續請求自動包含此 cookie。


windows 身份驗證
在 windows 身份驗證中,iis 執行身份驗證,并將經過身份驗證的標記傳遞給 asp.net 工作進程。使用 windows 身份驗證的優點是它需要的編碼最少。在將請求傳遞給 asp.net 之前,您可能需要使用 windows 身份驗證來模擬 iis 進行驗證的 windows 用戶帳戶。


passport 身份驗證
passport 身份驗證是 microsoft 提供的集中式身份驗證服務,它為成員站點提供單一登錄和核心配置文件服務。通常,當您需要跨越多個域的單一登錄功能時,將使用 passport 身份驗證。


默認身份驗證
當 web 應用程序不需要任何安全功能時,將使用默認身份驗證;此安全提供程序需要匿名訪問。在所有的身份驗證提供程序中,默認身份驗證為應用程序提供了最高的性能。當您使用自己的自定義安全模塊時,也可以使用此身份驗證提供程序。


授權
授權是指驗證經身份驗證的用戶是否可以訪問請求資源的過程。

asp.net 提供以下授權提供程序: &#8226; fileauthorization
&#8226; urlauthorization

fileauthorization
fileauthorizationmodule 類進行文件授權,而且在使用 windows 身份驗證時處于活動狀態。fileauthorizationmodule 負責對 windows 訪問控制列表 (acl) 進行檢查,以確定用戶是否應該擁有訪問權限。
urlauthorization
urlauthorizationmodule 類進行統一資源定位器 (url) 授權,它基于 uri 命名空間來控制授權。uri 命名空間可能與 ntfs 權限使用的物理文件夾和文件路徑存在很大的差異。

urlauthorizationmodule 實現肯定和否定的授權斷言;即,可以使用該模塊有選擇性地允許或拒絕訪問用戶、角色(如 manager、tester 和 administrator)和謂詞(如 get 和 post)的 uri 命名空間的任意部分。


基于角色的安全性
asp.net 中基于角色的安全性類似于 microsoft com+ 和 microsoft transaction server (mts) 所使用的基于角色的安全性,不過它們之間也存在很大的差異。asp.net 中基于角色的安全性不僅限于 windows 帳戶和組。例如,如果啟用 windows 身份驗證和模擬,用戶的標識就是 windows 標識 (user.identity.name = "domain/username")。可以檢查特定角色中成員的標識,并相應地限制其訪問權限。例如:



visual c# .net 代碼
if ( user.isinrole("builtin//administrators"))
response.write("you are an admin");
else if (user.isinrole("builtin//users"))
response.write("you are a user");
else
response.write("invalid user");

如果使用的是表單身份驗證,則不會為經過身份驗證的用戶分配角色;您必須以編程方式執行此任務。若要為經過身份驗證的用戶分配角色,請使用身份驗證模塊(本例中為表單身份驗證模塊)的 onauthenticate 事件創建新的 genericprincipal 對象,并為其分配 httpcontext 的 user 屬性。以下代碼對此進行了說明:



visual c# .net 代碼
public void application_authenticaterequest(object s, eventargs e)
{
if (httpcontext.current.user != null)
{
if (httpcontext.current.user.identity.authenticationtype == "forms" )
{
system.web.security.formsidentity id = httpcontext.current.user.identity;
string[] myroles = new string[3];
myroles[0]= "managers";
myroles[1]= "testers";
myroles[2]= "developers";
httpcontext.current.user = new system.security.principal.genericprincipal(id,myroles);
}
}
}

若要檢查用戶是否屬于特定的角色并相應地限制其訪問權限,請在 .aspx 頁中使用以下代碼(或類似的代碼):



visual c# .net 代碼
if (user.isinrole("managers"))
response.write("you are a manager");
else if (user.isinrole("testers"))
response.write("you are a tester");
else if (user.isinrole("developers"))
response.write("you are a developer");


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 板桥市| 旬邑县| 沧源| 灵寿县| 罗江县| 拉萨市| 永安市| 海城市| 公主岭市| 务川| 海伦市| 富锦市| 河北省| 墨江| 洛宁县| 孙吴县| 灵宝市| 高雄县| 河西区| 治县。| 淮南市| 阿拉善左旗| 无极县| 繁峙县| 上高县| 汉川市| 洞口县| 石嘴山市| 西平县| 抚宁县| 宜城市| 新疆| 佛冈县| 县级市| 河源市| 日喀则市| 高碑店市| 建阳市| 临西县| 阿拉善右旗| 盐城市|