《成員角色及登錄管理.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《成員角色及登錄管理.ppt(26頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、2,第10章 成員角色及登錄管理,學(xué)前提示 通過(guò)ASP.NET角色管理的使用,可以簡(jiǎn)化權(quán)限控制模塊的代碼編寫工作量。在以往的Web應(yīng)用開發(fā)中,角色管理模塊的開發(fā)需要花費(fèi)大量的時(shí)間和精力,才能達(dá)到理想的效果?,F(xiàn)在使用ASP.NET角色管理功能,不但降低了相關(guān)的開發(fā)量,而且相關(guān)的配置方法操作簡(jiǎn)便,更適于系統(tǒng)管理員進(jìn)行權(quán)限分配。 知識(shí)要點(diǎn) ASP.NET成員資格管理基礎(chǔ) ASP.NET角色管理基礎(chǔ) 使用ASP.NET網(wǎng)站管理工具配置成員資格管理程序,3,10.1 使用成員資格管理,ASP.NET提供了多個(gè)與實(shí)現(xiàn)角色及登錄管理功能有關(guān)的API、類及控件,本節(jié)對(duì)這些與角色管理相關(guān)的內(nèi)容進(jìn)行介紹。,4,1
2、0.1.1 成員資格介紹,ASP.NET 3.5繼承了ASP.NET 2.0中集成的強(qiáng)大身份驗(yàn)證功能,通過(guò)內(nèi)置成員資格API與SQL Server 2005 Express數(shù)據(jù)庫(kù)的有效結(jié)合,將大量復(fù)雜、繁瑣的身份驗(yàn)證代碼封裝為不同的類庫(kù),為開發(fā)用戶權(quán)限管理功能提供了方便。 成員資格管理主要實(shí)現(xiàn)以下幾個(gè)方面的功能。 用戶管理 為創(chuàng)建用戶、用戶登錄、權(quán)限管理等功能提供API接口,通過(guò)API接口降低應(yīng)用程序權(quán)限管理的開發(fā)難度。 角色管理 通過(guò)角色管理,簡(jiǎn)化權(quán)限管理工作。 基于目錄的權(quán)限分配 通過(guò)將相關(guān)文件放在同一目錄,并為目錄分配訪問(wèn)權(quán)限,實(shí)現(xiàn)權(quán)限控制。,5,10.1.2 成員資格類,
3、.NET工具箱中的7個(gè)登錄控件為應(yīng)用程序封裝了Membership類的常用操作,從而為用戶權(quán)限管理提供了一種便捷的實(shí)現(xiàn)方式,如圖10.1所示。 Membership類提供的功能包括: 創(chuàng)建新用戶 對(duì)訪問(wèn)網(wǎng)站的用戶進(jìn)行身份驗(yàn)證 管理密碼功能,6,10.1.2 成員資格類,表10-1列出了Membership類提供的主要方法,通過(guò)使用這些方法可以完成用戶管理的大部分工作。,7,10.1.3 配置ASP.NET應(yīng)用程序以使用成員資格,(1)啟動(dòng)Visual Studio 2008,打開需要?jiǎng)?chuàng)建角色管理功能的網(wǎng)站項(xiàng)目,選擇“網(wǎng)站”菜單下的“ASP.NET配置”命令,如圖10-2所示。Visual St
4、udio 2008會(huì)啟動(dòng)“網(wǎng)站管理工具”,如圖10-3所示。 (2)在“ASP.NET網(wǎng)站管理工具”中選擇“安全”選項(xiàng)卡,進(jìn)入網(wǎng)站角色管理工具,如圖10-4所示。,8,10.1.3 配置ASP.NET應(yīng)用程序以使用成員資格,(3)在網(wǎng)站角色管理工具界面中單擊“選擇身份驗(yàn)證類型”鏈接,在打開的頁(yè)面中選擇“通過(guò)Internet”,單擊“完成”按鈕,如圖10-5所示。完成后回到項(xiàng)目窗口,可以看到Visual Studio 2008創(chuàng)建了默認(rèn)使用的權(quán)限數(shù)據(jù)庫(kù)“ASPNETDB.MDF”,如圖10-6所示。,9,10.2 使用角色管理授權(quán),上一節(jié)介紹了ASP.NET成員資格管理的基本知識(shí),本節(jié)介紹如何通
5、過(guò)成員資格管理功能進(jìn)行用戶角色管理。,10,10.2.1 角色管理介紹,ASP.NET 3.5中的權(quán)限管理模塊提供了角色管理功能,可以幫助開發(fā)人員快速實(shí)現(xiàn)角色的管理與分配工作。 利用ASP.NET提供的角色管理功能,能夠根據(jù)用戶組(稱為角色)來(lái)管理應(yīng)用程序的授權(quán)。通過(guò)將用戶分配到不同角色,可以根據(jù)不同角色來(lái)控制用戶對(duì) Web 應(yīng)用程序的不同資源的訪問(wèn),而無(wú)需通過(guò)對(duì)用戶名授權(quán)來(lái)控制對(duì)頁(yè)面的訪問(wèn)。,11,10.2.2 角色管理類,.NET的角色管理API中包含多個(gè)用于角色管理的類,例如: Roles RoleProvider RoleManagerModule 其中我們重點(diǎn)要掌握的是Roles類。
6、Roles類的主要功能如下。 (1) 創(chuàng)建和管理角色。 (2) 用戶管理。,12,10.2.2 角色管理類,表10-2列出了Roles類的所有方法及其說(shuō)明,13,10.3 實(shí)現(xiàn)基本成員角色管理,前面介紹了ASP.NET成員管理功能的基本概念、啟用成員管理功能的方法以及主要的成員管理API說(shuō)明。本節(jié)通過(guò)幾個(gè)常用功能實(shí)現(xiàn)的講解,介紹成員管理API與ASP.NET配置管理工具的基本使用方法。,14,10.3.1 實(shí)現(xiàn)用戶身份驗(yàn)證,下面的代碼通過(guò)成員管理API實(shí)現(xiàn)用戶登錄功能: //獲得用戶輸入的用戶名與密碼,代碼略,查看前面的章節(jié) if (Membership.ValidateUser(UserNa
7、me, Password))//根據(jù)輸入的用戶名/密碼信息,調(diào)用ASP.NET提供的成員管理API,認(rèn)證用戶信息,如果認(rèn)證通過(guò),則執(zhí)行下面這段代碼 FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, Login1.UserName, DateTime.Now, DateTime.Now.AddMinutes(60), false, ); //建立身份驗(yàn)證票對(duì)象 string encryptedTicket =FormsAuthentication.Encrypt(authTicket); //加密
8、票據(jù) HttpCookie authCookie = new HttpCookie(FormsAuthentication .FormsCookieName, encryptedTicket); //得到Cookie對(duì)象 Response.Cookies.Add(authCookie); //將票據(jù)對(duì)象添加進(jìn)Cookie Response.Redirect(admin/default.aspx); //跳轉(zhuǎn)到后臺(tái)首頁(yè) else //輸出登錄失敗信息,代碼略,查看前面的章節(jié) ,15,10.3.2 創(chuàng)建新用戶并分配角色權(quán)限,創(chuàng)建新用戶有兩種實(shí)現(xiàn)方式: 方式1:網(wǎng)站管理員通過(guò)ASP.NET
9、配置管理工具進(jìn)行創(chuàng)建 方式2:為用戶通過(guò)注冊(cè)頁(yè)面進(jìn)行注冊(cè)。 首先介紹如何使用ASP.NET工具創(chuàng)建用戶。 (1) 啟動(dòng)ASP.NET網(wǎng)站配置工具,在主界面中選擇“創(chuàng)建用戶”鏈接,如圖10-7所示。 (2) 在“創(chuàng)建用戶”頁(yè)面中輸入用戶的基本信息,并指定用戶的角色(假設(shè)已經(jīng)創(chuàng)建過(guò)角色),16,10.3.2 創(chuàng)建新用戶并分配角色權(quán)限,關(guān)于角色的創(chuàng)建,后文還會(huì)有專門的介紹,如圖10-8所示。單擊“創(chuàng)建用戶”按鈕,如果用戶信息填寫符合系統(tǒng)要求,并且用戶名沒(méi)有與系統(tǒng)中存在的用戶重名,系統(tǒng)會(huì)提示創(chuàng)建用戶成功,如圖10-9所示。,17,10.3.2 創(chuàng)建新用戶并分配角色權(quán)限,從工具箱中插入一個(gè)CreateU
10、serWizard控件到頁(yè)面中,如圖10-10所示。 插入后出現(xiàn)控件界面及任務(wù)面板,如圖10-11所示。,18,10.3.2 創(chuàng)建新用戶并分配角色權(quán)限,運(yùn)行后的用戶注冊(cè)頁(yè)面如圖10-12所示。注冊(cè)成功的提示頁(yè)面如圖10-13所示。,19,10.3.3 顯示用戶列表和刪除用戶,(1)在網(wǎng)站管理工具中,單擊“管理用戶”鏈接,如圖10-14所示。 (2)在用戶管理頁(yè)面中可以進(jìn)行用戶信息的修改和刪除,同時(shí)如果用戶信息較多,用戶管理頁(yè)面提供了用戶查詢功能,如圖10-15所示。,20,10.3.4 更新用戶信息,管理員通過(guò)在用戶管理頁(yè)面單擊用戶名后面的“編輯用戶”鏈接進(jìn)入本頁(yè)面,在這里可以修改用戶的基本資
11、料,還可以設(shè)置用戶所擁有的角色權(quán)限,如圖10-16所示。,21,10.3.5 創(chuàng)建角色,通過(guò)在ASP.NET網(wǎng)站配置工具中單擊“啟用角色”鏈接,可以打開ASP.NET內(nèi)置的角色管理功能,如圖10-17所示。 第一次使用角色管理功能時(shí)系統(tǒng)會(huì)要求添加第一個(gè)系統(tǒng)角色,輸入角色名稱并單擊“添加角色”按鈕,則完成角色創(chuàng)建任務(wù),如圖10-18所示。,22,10.3.6 顯示角色列表和刪除角色,啟用角色管理功能后,在ASP.NET網(wǎng)站配置工具頁(yè)面中會(huì)出現(xiàn)“創(chuàng)建或管理角色”鏈接,如圖10-19所示。 在角色管理頁(yè)面中可以添加新的角色、刪除角色,刪除時(shí)有一個(gè)限制該角色下面必須沒(méi)有用戶信息,否則不能刪除該角色。單
12、擊“管理”鏈接可以管理該角色下面的用戶信息,如圖10-20所示。,23,10.3.6 顯示角色列表和刪除角色,在角色管理頁(yè)面中列出了系統(tǒng)中創(chuàng)建的所有用戶信息,可以通過(guò)切換勾選與不勾選狀態(tài),設(shè)置用戶是否屬于本角色,如果用戶較多,系統(tǒng)提供了查詢功能,可以查詢用戶信息,如圖10-21所示。,24,10.3.7 設(shè)置角色權(quán)限,(1)在網(wǎng)站管理工具的“安全選項(xiàng)卡”中單擊“創(chuàng)建訪問(wèn)規(guī)則”鏈接,進(jìn)入訪問(wèn)規(guī)則配置界面,如圖10-22所示。 (2)在創(chuàng)建訪問(wèn)權(quán)限頁(yè)面左邊選擇本條權(quán)限用于對(duì)哪個(gè)目錄進(jìn)行權(quán)限控制,中間部分設(shè)置進(jìn)行權(quán)限控制的用戶、角色或用戶群,在頁(yè)面右邊選擇本條權(quán)限允許還是拒絕指定用戶對(duì)本目錄的訪問(wèn)。
13、 設(shè)置完成后單擊“完成”按鈕完成權(quán)限設(shè)置,如圖10-23所示。,25,10.3.7 設(shè)置角色權(quán)限,(3)在ASP.NET網(wǎng)站配置工具界面中點(diǎn)擊“管理訪問(wèn)規(guī)則”鏈接,打開管理訪問(wèn)權(quán)限頁(yè)面,如圖10-24所示。,26,10.4 上 機(jī) 練 習(xí),(1)創(chuàng)建一個(gè)ASP.NET網(wǎng)站,啟用網(wǎng)站的角色管理功能。 (2)創(chuàng)建三個(gè)頁(yè)面,其中一個(gè)登錄頁(yè)面在網(wǎng)站首頁(yè),另外兩個(gè)頁(yè)面發(fā)布在網(wǎng)站下面的獨(dú)立子目錄中,登錄頁(yè)面上放置一個(gè)登錄控件,其他兩個(gè)文件中添加標(biāo)識(shí)文件名稱的內(nèi)容。 (3)使用網(wǎng)站管理工具創(chuàng)建兩個(gè)用戶角色,分別命名為“管理員”和“注冊(cè)用戶”,并為每種角色創(chuàng)建一個(gè)用戶。 (4)設(shè)置用戶權(quán)限,匿名訪客只能打開登錄頁(yè)面,輸入管理員用戶登錄密碼后進(jìn)入管理員文件夾的首頁(yè),輸入注冊(cè)用戶登錄密碼后進(jìn)入注冊(cè)用戶文件夾的首頁(yè)。,