版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
--成員資格與角色管理Web編程技術(shù)潘冰主要內(nèi)容1、Web應(yīng)用程序平安概述2、基于成員資格和角色的網(wǎng)站平安3、利用控件創(chuàng)立平安頁(yè)4、編程實(shí)現(xiàn)成員管理5、編程實(shí)現(xiàn)角色管理1、Web應(yīng)用程序平安概述問(wèn)題:網(wǎng)站的平安訪問(wèn)如果用戶繞過(guò)登錄網(wǎng)頁(yè)直接進(jìn)入其他網(wǎng)頁(yè),如何保證頁(yè)面的授權(quán)訪問(wèn)?1〕傳統(tǒng)基于角色的平安技術(shù)被保護(hù)的網(wǎng)頁(yè)設(shè)置如Session對(duì)象保護(hù)措施,并建立用戶注冊(cè)表,在注冊(cè)表中注明用戶的姓名、密碼以及分配的角色等。當(dāng)用戶進(jìn)入登錄頁(yè)面時(shí),先要求用戶輸入自己的姓名和密碼,然后到注冊(cè)表中去查詢。如果在表中找到了可以匹配的記錄時(shí),說(shuō)明該用戶已經(jīng)進(jìn)行了注冊(cè),然后取出用戶對(duì)應(yīng)的角色(類型)字段,根據(jù)分配給角色的權(quán)限讓用戶轉(zhuǎn)入相應(yīng)的網(wǎng)頁(yè)。2〕ASP.NET2.0基于角色的平安技術(shù)ASP.NET2.0提供了一個(gè)網(wǎng)站管理工具和7個(gè)組合控件以及編程方式實(shí)現(xiàn)基于成員資格和角色的管理。當(dāng)給網(wǎng)站配置好平安設(shè)置后,系統(tǒng)在應(yīng)用程序的”App_Data”專用目錄下創(chuàng)立專用數(shù)據(jù)庫(kù)〔ASPNETDB.MDF〕和假設(shè)干數(shù)據(jù)表。這些表包含用戶的注冊(cè)信息、角色信息以及個(gè)性效勞所需要的信息。成員資格的根本概念A(yù)SP.NET成員資格〔Membership〕提供了一種驗(yàn)證和存儲(chǔ)用戶憑據(jù)的內(nèi)置方法。成員資格使用成員資格提供程序存儲(chǔ)用戶數(shù)據(jù)。默認(rèn)是SQLServer數(shù)據(jù)庫(kù)。默認(rèn)成員資格提供程序?yàn)锳spNetSqlProvider。結(jié)合ASP.NET成員資格、ASP.NETForms身份驗(yàn)證、ASP.NET登錄控件,用戶可以高效地創(chuàng)立一個(gè)完整的用戶身份驗(yàn)證系統(tǒng)。角色管理的根本概念角色是用戶組的名稱。角色相當(dāng)于操作系統(tǒng)的組。建立角色后,可以將每個(gè)用戶分配到不同角色中。然后,再對(duì)角色分別授予不同的權(quán)限,這時(shí)角色中的每個(gè)用戶都繼承了已分配的權(quán)限,實(shí)現(xiàn)了用戶和訪問(wèn)權(quán)限的邏輯別離。角色管理就是用來(lái)管理授權(quán)。角色管理包括兩個(gè)方面:可以創(chuàng)立不同的角色,如administrators、users、guests等,然后把用戶添加到相應(yīng)的角色中。創(chuàng)立角色后,可以在應(yīng)用程序中創(chuàng)立基于角色的訪問(wèn)規(guī)那么。基于角色的授權(quán)管理,可以大大減少系統(tǒng)管理的工作量。2、基于成員資格和角色的網(wǎng)站平安2.1組織好站點(diǎn)中的文件2.2利用網(wǎng)站管理工具進(jìn)行平安配置2.3ASP.NET配置文件平安設(shè)置2.1組織好站點(diǎn)中的文件建立假設(shè)干子目錄,將平安等級(jí)相同的網(wǎng)頁(yè)放在同一個(gè)子目錄下,在各個(gè)子目錄的根目錄下設(shè)置Web.config文件,利用該文件配置平安策略。Web.config文件之間的定義有繼承關(guān)系,假設(shè)子目錄的定義不同于父目錄時(shí),子目錄下的文件按照子目錄的定義執(zhí)行。Web.config文件與目錄的關(guān)系2.2利用網(wǎng)站管理工具進(jìn)行平安配置〔1〕平安設(shè)置步驟2.2利用網(wǎng)站管理工具進(jìn)行平安配置2.2利用網(wǎng)站管理工具進(jìn)行平安配置2.2利用網(wǎng)站管理工具進(jìn)行平安配置目錄,角色,訪問(wèn)權(quán)限(者結(jié)合起來(lái)確定某角色(或用戶)對(duì)某目錄的訪問(wèn)權(quán)限。操作過(guò)程是:先確定角色(或用戶),再確定權(quán)限,再選擇目錄,最后單擊【添加此規(guī)那么】按鈕。〔2〕對(duì)平安配置的調(diào)整用戶:用來(lái)增添、編輯或刪除用戶,還可以給用戶分配角色;角色:用來(lái)增添、編輯或刪除角色;2.2利用網(wǎng)站管理工具進(jìn)行平安配置2.2利用網(wǎng)站管理工具進(jìn)行平安配置訪問(wèn)規(guī)那么:用來(lái)增加、編輯或刪除訪問(wèn)規(guī)那么??梢宰兂赏瓿蛇@些步驟2.2利用網(wǎng)站管理工具進(jìn)行平安配置〔3)平安配置的結(jié)果在應(yīng)用程序的各個(gè)目錄下分別產(chǎn)生了web.config配置文件,文件中載入了對(duì)該目錄的訪問(wèn)權(quán)限。例如Admin目錄的web.config文件如下:<?xmlversion="1.0"encoding="utf-8"?><configuration><system.web><roleManagerenabled=“true”/>〔啟用角色管理〕<authenticationmode=“Forms”/>(身份驗(yàn)證類型為“通過(guò)Internet”)<authorization><allowroles=“Student"/><denyroles=“Admin”/>〔只允許Studnt和Admin訪問(wèn)該目錄〕<denyroles=“user"/><denyusers=“*”/><denyusers=“?”/></authorization></system.web></configuration>在<authorization>…</authorization>中配置的順序非常重要,系統(tǒng)總是按照從前向后逐條匹配的方法,并且執(zhí)行最先的匹配者。代碼中“*”代表所有用戶;“?”代表匿名用戶。也可以在web.config文件中直接編寫代碼2.2利用網(wǎng)站管理工具進(jìn)行平安配置應(yīng)用程序的根目錄下出現(xiàn)了一個(gè)專用的App_Data目錄,在該目錄下出現(xiàn)了一個(gè)專用的SQLServer數(shù)據(jù)庫(kù)(名為ASPNETDB.MDF)。數(shù)據(jù)庫(kù)中包括用于用戶管理的假設(shè)干專用數(shù)據(jù)表,這些數(shù)據(jù)表將自動(dòng)記錄登錄用戶、角色以及它們的相關(guān)數(shù)據(jù)。2.3ASP.NET配置文件平安設(shè)置網(wǎng)站的根目錄和子目錄下都可以有自己的web.config文件。Web.config配置文件中用于平安的配置主要包含三個(gè)主要的配置節(jié):Authentication身份驗(yàn)證Authorization授權(quán)Location標(biāo)識(shí)(定位)〔1〕authentication節(jié)身份驗(yàn)證authentication節(jié)用于配置ASP.NET身份驗(yàn)證方案。可以指定應(yīng)用程序使用的驗(yàn)證模式:Windows〔默認(rèn)〕/Forms/Passport/None〔不對(duì)請(qǐng)求進(jìn)行任何附加身份驗(yàn)證〕。authentication節(jié)配置格式如下:<authenticationmode="[Windows|Forms|Passport|None]"><forms>...</forms><passport/></authentication><forms>用于配置基于窗體〔form〕的自定義身份驗(yàn)證方式。<forms>元素的主要屬性name:定義在終端用戶進(jìn)行了身份驗(yàn)證后發(fā)送給他們的cookie的名稱。默認(rèn)情況,這個(gè)cookie的名稱是.ASPXAUTH。loginUrl:如果沒有找到有效的驗(yàn)證cookie(.ASPXAUTH或其他),就指定重定向HTTP請(qǐng)求的頁(yè)面位置。它默認(rèn)設(shè)置為login.aspx。protection:指定應(yīng)用于cookie的保護(hù)級(jí)別,該cookie在終端用戶通過(guò)身份驗(yàn)證后存儲(chǔ)在他的機(jī)器上。其設(shè)置包括All、None、Encryption和Validation。應(yīng)總是使用All。timeout:定義cookie過(guò)期后的時(shí)間(分鐘)。默認(rèn)值是30分鐘。path:指定應(yīng)用程序調(diào)用的cookie路徑。cookieless:指定ASP.NET處理cookie的方式。其值可以是useDeviceProfile、useCookies、auto和useUri。默認(rèn)值是useDeviceProfile。(2)authorization節(jié)授權(quán)authorization節(jié)用于配置Web應(yīng)用程序的授權(quán),以控制客戶端對(duì)URL資源的訪問(wèn)權(quán)限。元素<allow>和<deny>它們分別授予和撤消訪問(wèn)權(quán)限。每個(gè)元素支持三個(gè)屬性。users:標(biāo)識(shí)允許或拒絕訪問(wèn)資源的用戶。問(wèn)號(hào)〔?〕表示匿名用戶〔即未經(jīng)身份驗(yàn)證的用戶〕,星號(hào)〔*〕表示所有經(jīng)過(guò)身份驗(yàn)證的用戶。roles:標(biāo)識(shí)允許或拒絕訪問(wèn)資源的角色〔組〕。verbs:定義操作中所用的HTTP提交方式。如GET、HEAD和POST。默認(rèn)值為“*”,表示支持所有的HTTP提交方式。默認(rèn):<allowroles=“”/>允許所有角色<allowusers=“*”/>允許所有用戶authorization節(jié)授權(quán)舉例例1,以下配置代碼允許所有Admins角色成員訪問(wèn),拒絕所有其他用戶訪問(wèn):<configuration><system.web><authorization><allowroles="Admins"/><denyusers="*"/></authorization></system.web></configuration>允許admins角色成員拒絕所有用戶authorization節(jié)授權(quán)舉例例2:允許每個(gè)人使用GET,但只有Kim可以使用POST。<authorization> <allowverbs="GET"users="*"/> <allowverbs="POST"users="Kim"/> <denyverbs="POST"users="*"/></authorization>(3)location節(jié)location節(jié)用于指定應(yīng)用到特定文件或目錄的設(shè)置。例如,以下配置代碼允許匿名用戶訪問(wèn)Logon.aspx頁(yè)面:<configuration><locationpath="Logon.aspx"><system.web><authorization><allowusers="?"/></authorization></system.web></location><locationpath=“admin"><system.web><authorization><allowroles=“administrator"/><denyusers=“*”/></authorization></system.web></location></configuration>允許匿名用戶訪問(wèn)文件login.aspx只允許administrator訪問(wèn)admin文件夾任務(wù): 當(dāng)未登錄用戶訪問(wèn)登錄頁(yè)面以外的頁(yè)面時(shí),自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面login.aspx。解決方案:使用Web.config的平安配置功能,配置使用forms的身份驗(yàn)證。使用說(shuō)明:Forms身份驗(yàn)證經(jīng)常用于個(gè)性化效勞,在某些情況下,身份驗(yàn)證不是關(guān)鍵,而標(biāo)識(shí)才是關(guān)鍵,所以在持久性的Cookie中只需存儲(chǔ)用戶名就足夠了,然后使用該Cookie來(lái)訪問(wèn)用戶的個(gè)性化信息。例:使用Web.config配置ASP.NET的平安修改web.config文件,訪問(wèn)login10.aspx運(yùn)行l(wèi)ogin10.aspx文件回自動(dòng)轉(zhuǎn)到login.aspx頁(yè)面若改為<allowusers=“*”/>則定向到當(dāng)前文件未經(jīng)過(guò)身份驗(yàn)證,那么重定向到login.aspx在web.config中添加自定義變量Web.config<configuration> <appSettings> <addkey=“welcomeMessage”value=“歡送訪問(wèn)本網(wǎng)站”/> </appSettings></configuration>在頁(yè)面中應(yīng)用變量,如在中,lblWelMsg.Text=System.Configuration.ConfigurationManager.AppSettings["welcomeMessage"];3利用控件創(chuàng)立平安頁(yè)ASP.NET2.0系統(tǒng)提供了一組用戶管理控件,利用這些控件可以方便地完成用戶管理和基于角色的平安策略的設(shè)計(jì)工作。這些控件包括:Login用戶登錄控件CreateUserWizard創(chuàng)立新用戶控件LoginView登錄視圖控件LoginName登錄用戶名控件LoginStatus登錄狀態(tài)控件ChangePassword改變密碼控件PasswordRecovery恢復(fù)密碼控件(1)用戶登錄控件(Login)是基于角色的平安技術(shù)的核心控件。該控件的作用是進(jìn)行用戶認(rèn)證,確定新到的用戶是否已經(jīng)登錄。Login控件實(shí)質(zhì)上是一個(gè)“用戶控件”,它不僅生成了顯示界面,還定義了相應(yīng)的行為。由于系統(tǒng)已經(jīng)自動(dòng)生成了數(shù)據(jù)表,而且數(shù)據(jù)表的表名、字段名以及位置都已經(jīng)固定,因此只要將Login控件拖入到窗體中,不需要編寫任何代碼,也不需設(shè)置任何其他屬性就可以使用。(1)用戶登錄控件(Login)執(zhí)行Login控件的結(jié)果要么登錄成功,要么登錄失敗。當(dāng)?shù)卿洺晒r(shí):(1)轉(zhuǎn)向新頁(yè)面。Login控件的DestinationPageUrl屬性用來(lái)設(shè)置跳轉(zhuǎn)的頁(yè)面地址。(2)改變視圖。利用本頁(yè)面的LoginView控件改變視圖,顯示基于角色的不同界面。(3)顯示登錄狀態(tài)。利用LoginStatus控件顯示登錄狀態(tài),以便隨時(shí)退出登錄狀態(tài)。(4)表示對(duì)登錄用戶的歡送。利用LoginName控件編寫歡送語(yǔ)句。登錄失敗時(shí):(1)提示錯(cuò)誤信息,要求重新登錄。Login控件的FailureText屬性用來(lái)確定登錄失敗時(shí)的提示文本。(2)創(chuàng)立新用戶。通過(guò)CreateUserWizard控件創(chuàng)立新用戶,以完成登錄前的準(zhǔn)備工作。(3)恢復(fù)密碼。通過(guò)PasswordRecovery控件幫助用戶恢復(fù)密碼。(1)用戶登錄控件(Login)在Login控件中設(shè)置與上述控件相應(yīng)的頁(yè)面的鏈接指針,方法如下:屬性CreateUserText和CreateUserUrl相結(jié)合指向創(chuàng)立的新用戶界面。屬性PasswordRecoveryText和PasswordRecoveryUrl相結(jié)合指向恢復(fù)密碼的網(wǎng)頁(yè)。屬性HelpPageText和HelpPageUrl相結(jié)合指向幫助網(wǎng)頁(yè)。屬性“VisibleWhenLoggedIn”用來(lái)設(shè)置當(dāng)用戶身份驗(yàn)證成功后是否自動(dòng)隱藏自己。如果將它設(shè)為true時(shí),一旦登錄成功,Login控件自己將被隱藏起來(lái)。圖18.9為登錄控件設(shè)置屬性(1)用戶登錄控件(Login)在Login控件中提供了4個(gè)事件,利用這些事件可以增強(qiáng)控件的功能。BeforeLogin:發(fā)生在登錄表驗(yàn)證之前。利用這一事件可以檢查輸入數(shù)據(jù)的語(yǔ)法和格式是否正確,以便及時(shí)提示錯(cuò)誤并中斷后續(xù)的操作。AfterLogin:發(fā)生在認(rèn)證成功之后,利用這一事件可以在登錄成功以后附加一些程序以便做進(jìn)一步處理。Authenticate:發(fā)生在想根據(jù)事件而提供一個(gè)固定的認(rèn)證模式的時(shí)候,可以詳細(xì)說(shuō)明用戶數(shù)據(jù)是否已經(jīng)被驗(yàn)證成功。LoginError:發(fā)生在用戶輸入數(shù)據(jù)錯(cuò)誤,認(rèn)證停止的時(shí)候。利用此事件可以在錯(cuò)誤發(fā)生,停止認(rèn)證后做進(jìn)一步的處理。(2)使用創(chuàng)立新用戶控件(CreateUserWizard)用于創(chuàng)立新網(wǎng)站用戶帳戶的界面。無(wú)create-user事件,那么成功創(chuàng)立用戶后執(zhí)行此過(guò)程成功創(chuàng)立用戶后執(zhí)行此過(guò)程該控件可以在用戶完成所有的注冊(cè)工程之后,自動(dòng)給用戶的郵箱發(fā)送用戶注冊(cè)信息的郵件。下面是在CreateUserWizard控件中,為用戶完成注冊(cè)后發(fā)送給用戶的一封主題為“感謝”的電子郵件而做的設(shè)置,郵件的文件名為“welcomeEmail.txt”。<asp:CreateUserWizardID="CreateUserWizard1"Runat="server"><MailDefinition>BodyFileName="welcomeEmail.txt"From=""Subject="感謝!"</MailDefinition></asp:CreateUserWizard>如果要使該控件具有發(fā)送電子郵件的功能,必須使它能夠發(fā)送郵件,為此在MACHINE.CONFIG文件中將看到下面的配置:<smtpMailserverName="localhost"serverPort="25"/>(2)使用創(chuàng)立新用戶控件(CreateUserWizard)(3)登錄狀態(tài)(LoginStatus)與登錄姓名控件(LoginName)LoginName用來(lái)顯示注冊(cè)用戶的名字,通過(guò)FormatString屬性可以增加一些格式的描述。如果用戶沒有被認(rèn)證,這個(gè)控件就不會(huì)在頁(yè)面上產(chǎn)生任何輸出。LoginStatus(登錄狀態(tài))控件那么提供了一個(gè)方便的超鏈接,它會(huì)根據(jù)當(dāng)前驗(yàn)證的狀態(tài),在登錄和退出操作之間進(jìn)行切換,如果用戶尚未經(jīng)過(guò)身份驗(yàn)證,那么顯示指向登錄頁(yè)面的鏈接。如果用戶已經(jīng)進(jìn)行了身份驗(yàn)證,那么顯示使該用戶能夠退出的鏈接。利用不同的屬性,這兩個(gè)顯示的內(nèi)容都是可以被修改的。通常可以根據(jù)登錄和退出的狀態(tài)在控件上加上照片等個(gè)性化的東西。LoginStatus控件自動(dòng)檢測(cè)用戶的身份驗(yàn)證狀態(tài)〔Request.IsAuthenticated〕,并顯示適當(dāng)?shù)牡卿?注銷選項(xiàng)。當(dāng)單擊【登錄】按鈕,將用戶重定向到該網(wǎng)站的登錄頁(yè)。LoginStatus控件將從web.config文件窗體身份驗(yàn)證節(jié)檢索登錄頁(yè)的URL。當(dāng)單擊【注銷】按鈕,將去除用戶的身份驗(yàn)證狀態(tài),并且執(zhí)行相應(yīng)的注銷行為:刷新當(dāng)前頁(yè)/登錄頁(yè)/指定頁(yè)。LoginName控件LoginName控件在頁(yè)上顯示當(dāng)前經(jīng)過(guò)身份驗(yàn)證的用戶名〔〕。如果用戶沒有登錄,那么該控件不在頁(yè)上呈現(xiàn),并且不占任何視覺空間。通過(guò)設(shè)置FormatString屬性,可以更改由LoginName控件顯示的文本。(4)登錄視圖控件(LoginView)作用:LoginView結(jié)合導(dǎo)航控件能夠根據(jù)當(dāng)前用戶的角色自動(dòng)顯示不同的導(dǎo)航界面,實(shí)現(xiàn)基于角色的網(wǎng)站瀏覽功能。默認(rèn)情況下該控件只包括兩個(gè)模板:匿名(未登錄)模板(Anonymous)與已登錄模板(LoggedIn),可以對(duì)匿名用戶和已登錄的用戶分別顯示不同的導(dǎo)航界面。如果在應(yīng)用工程中設(shè)置了多個(gè)不同的角色時(shí),控件將自動(dòng)增加多種不同的模板,用來(lái)為不同角色顯示不同的導(dǎo)航界面。特點(diǎn):登錄后的用戶按自己所充當(dāng)?shù)慕巧榭醋约簷?quán)限以內(nèi)的網(wǎng)頁(yè),這只是視圖上的保護(hù),并不能代替Web.config文件的作用,一些用戶還有可能直接利用URL直接進(jìn)入受保護(hù)的網(wǎng)頁(yè)。因此視圖的保護(hù)還應(yīng)該和Web.config相結(jié)合才能既有效又方便地保護(hù)網(wǎng)頁(yè)。(5)PasswordRecovery控件和ChangePassword控件
PasswordRecovery控件能夠通過(guò)電子郵件來(lái)幫助恢復(fù)忘記的密碼。要使用該控件,需要具有自動(dòng)發(fā)送郵件的功能,必須正確配置Web.config文件。只要用戶在注冊(cè)時(shí)正確地填寫了郵箱地址和配置正確,并在該控件里提交了請(qǐng)求,它就會(huì)自動(dòng)把密碼發(fā)送到你的郵箱中。該控件提供了三種視圖。UserName:用戶需要在這里填上登錄名。Question:用戶尋找遺忘的密碼時(shí)必須答復(fù)的問(wèn)題。Answer:當(dāng)用戶輸入的密碼正確,或者已經(jīng)用E-mail發(fā)給用戶的時(shí)候。PasswordRecovery控件PasswordRecovery控件PasswordRecovery控件中的重要事件。BeforeUserLookup:當(dāng)用戶查找用戶資料的時(shí)候被激發(fā)??梢栽O(shè)定個(gè)人測(cè)試條件取消這個(gè)過(guò)程。UserLookupError:當(dāng)用戶名不存在時(shí)激發(fā)。BeforeAnswerLookup:在用戶輸入了答案并且被驗(yàn)證后激發(fā)。AnswerLookupError:當(dāng)輸入答案錯(cuò)誤時(shí)被激發(fā)。BeforeSendMail:在郵件發(fā)送之前被激發(fā)。ChangePassword控件在Web頁(yè)面中的2個(gè)視圖:【更改密碼】視圖:【成功】視圖:是復(fù)合模板舉例(1)使用CreateUserWizard控件創(chuàng)立用戶注冊(cè)頁(yè)面(2)使用Login控件創(chuàng)立登錄頁(yè)面(3)使用LoginView控件檢測(cè)用戶身份(4)使用ChangePassword控件創(chuàng)立密碼修改頁(yè)面(5)使用PasswordRecovery控件創(chuàng)立密碼恢復(fù)頁(yè)面(1)使用CreateUserWizard控件
創(chuàng)立用戶注冊(cè)頁(yè)面例1:開發(fā)任務(wù):創(chuàng)立新用戶注冊(cè)頁(yè)面Register.aspx。數(shù)據(jù)保存在ASPNETDB.MDF的aspnet_membership、aspnet_users表中。使用forms身份驗(yàn)證(2)使用Login控件創(chuàng)立登錄頁(yè)面例2:開發(fā)任務(wù):使用Login控件創(chuàng)立登錄頁(yè)面Login.aspx。登錄成功,那么轉(zhuǎn)到默認(rèn)頁(yè)default.pasx。主要屬性:CreateUserText—新建用戶提示信息。CreateUserUrl-新用戶注冊(cè)頁(yè)面文件。用戶信息在哪里?在ASPNETDB.MDF的aspnet_membership、aspnet_users表中(3)使用LoginView控件檢測(cè)用戶身份
例3:使用LoginView控件創(chuàng)立用戶身份檢測(cè)頁(yè)面LoginView.aspx。(4)使用ChangePassword控件創(chuàng)立
密碼修改頁(yè)面例4:使用ChangePassword控件創(chuàng)立密碼修改頁(yè)面ChangePassword.aspx。MailDefinition屬性:可以將成功更改的密碼通過(guò)電子郵件的形式通知用戶。ContinueDestinationPageUrl: 單擊“繼續(xù)”按鈕是重定向的URL。(5)使用PasswordRecovery控件創(chuàng)立
密碼恢復(fù)頁(yè)面例5:使用PasswordRecovery控件創(chuàng)立密碼恢復(fù)頁(yè)面LoginPasswdRecovery.aspx。分兩步:(1)密碼恢復(fù)登錄界面:loginpasswdRecovery.aspx關(guān)鍵屬性: PasswordRecoveryText-“忘記了密碼” PasswordRecoveryUrl-“PasswdRecovery.aspx”(2)密碼恢復(fù)界面:PasswdRecovery.aspx三個(gè)視圖4編程實(shí)現(xiàn)成員管理登錄控件實(shí)現(xiàn)對(duì)登錄和用戶的管理實(shí)際上是調(diào)用ASP.NET成員管理的API(Membershiplei和MembershipUser類〕成員資格管理數(shù)據(jù)庫(kù)成員資格管理提供程序成員資格管理API登錄控件數(shù)據(jù)庫(kù)SqlMembershipProviderMembershipMembershipUserLogin控件LoginName控件……成員資格管理體系結(jié)構(gòu)成員資格API:MemberShip類MembershipAPI方法可以對(duì)成員身份進(jìn)行更高級(jí)別的控制。利用這些方法能夠完成:創(chuàng)立新用戶驗(yàn)證用戶登錄請(qǐng)求查找用戶更新用戶刪除用戶成員資格API:MemberShip類的常用方法
名稱說(shuō)明CreateUser()將新用戶添加到數(shù)據(jù)存儲(chǔ)區(qū)DeleteUser()從數(shù)據(jù)庫(kù)中刪除一個(gè)用戶GetUser()從數(shù)據(jù)源獲取成員資格用戶GetUserNameByEmail()通過(guò)Email獲取用戶名FindUsersByName()通過(guò)用戶名查找成員資格用戶FindUsersByEmail()通過(guò)Email查找成員資格用戶GetAllUsers()獲取數(shù)據(jù)庫(kù)中用戶的集合GetNumberOfUsersOnline()獲取當(dāng)前訪問(wèn)應(yīng)用程序的用戶數(shù)GeneratePassword()生成指定長(zhǎng)度的隨機(jī)密碼UpdateUser()指定用戶的信息更新數(shù)據(jù)庫(kù)ValidateUser()驗(yàn)證用戶成員資格API:MembershipUserMembershipUser類用于表示成員資格數(shù)據(jù)存儲(chǔ)區(qū)中的單個(gè)成員資格用戶。該類公開有關(guān)成員資格用戶的信息〔如電子郵件地址〕,并為成員資格用戶提供功能〔如更改或重置其密碼的功能〕。訪問(wèn)用戶的屬性更改用戶密碼或重置用戶密碼檢索用戶密碼更改用戶的密碼提示和密碼答案解除用戶鎖定成員資格API:
MembershipUser類的常用方法
名稱說(shuō)明UnlockUser()清除用戶的鎖定狀態(tài)以便可以驗(yàn)證成員資格用戶。GetPassword從成員資格數(shù)據(jù)存儲(chǔ)區(qū)獲取成員資格用戶的密碼。ResetPassword將用戶密碼重置為一個(gè)自動(dòng)生成的新密碼。ChangePassword(stringoldPassword,stringnewPassword)更新成員資格數(shù)據(jù)存儲(chǔ)區(qū)中成員資格用戶的密碼。ChangPasswordQuestionAndAnswer更新成員資格數(shù)據(jù)存儲(chǔ)區(qū)中成員資格用戶的密碼提示問(wèn)題和密碼提示問(wèn)題答案。角色管理:Roles類Roles類的主要功能:創(chuàng)立角色。將用戶添加到角色。確定特定用戶是否在角色中。獲取用戶的角色。從角色中刪除用戶。管理包含角色信息的Cookie。角色管理:Roles類常用方法
CreateRole()將新的角色添加到數(shù)據(jù)源。DeleteRole()從數(shù)據(jù)源中刪除一個(gè)角色RoleExists()判斷角色數(shù)據(jù)源中是否存在指定的角色名稱GetAllRoles() 獲取應(yīng)用程序中所有角色的列表AddUserToRole() 為一個(gè)用戶分配一個(gè)角色。AddUserToRoles() 為多個(gè)用戶分配一個(gè)角色。AddUsersToRole() 為多個(gè)用戶分配多個(gè)角色。RemoveUserFromRole()從一個(gè)角色中刪除一個(gè)指定用戶。角色管理:Roles類常用方法〔續(xù)〕RemoveUserFromRoles()從多個(gè)角色中刪除一個(gè)指定用戶。RemoveUsersFromRole()從一個(gè)角色中刪除多個(gè)指定用戶。RemoveUsersFromRoles()從多個(gè)角色中刪除多個(gè)指定用戶。IsUserInRole() 判斷指定用戶是否具有指定角色。GetRolesForUser() 獲取指定用戶所屬的角色列表。GetUsersInRoles() 獲取一個(gè)用戶所屬角色的列表。FindUsersInRole() 獲取屬于指定角色的用戶的列表,其中用戶名包含要匹配的指定用戶名。1)利用Membership類創(chuàng)立新用戶在窗體中創(chuàng)立6個(gè)輸入窗口以及一個(gè)按鈕,其中:TextBox1用于輸入新用戶名;TextBox2用于輸入新用戶密碼;TextBox3用于輸入新用戶的E-mail;TextBox4用于輸入平安提示問(wèn)題;TextBox5用于輸入答復(fù)以下問(wèn)題;TextBox6用于輸入提示錯(cuò)誤。舉例:編程實(shí)現(xiàn)成員管理與角色管理voidButton1_Click(objectsender,EventArgse){if(this.IsValid){MembershipCreateStatusstatus;MembershipUseruser=Membership.CreateUser(this.TextBox1.Text,this.TextBox2.Text,this.TextBox3.Text,this.TextBox4.Text,this.TextBox5.Text,false,outstatus);switch(status){caseMembershipCreateStatus.Success:FormsAuthentication.RedirectFromLoginPage(user.UserName,false);break;caseMembershipCreateStatus.DuplicateEmail:this.TextBox6.Text="email地址已經(jīng)登錄";break;caseMembershipCreateStatus.DuplicateUserName:this.TextBox6.Text="用戶已經(jīng)登錄";break;c
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 淘寶網(wǎng)店合伙開店合同
- 2025版旅游公司兼職導(dǎo)游合同保密及個(gè)人信息保護(hù)協(xié)議3篇
- 礦井粉塵課程設(shè)計(jì)
- 二零二五年度二手房購(gòu)房合同:物業(yè)接管服務(wù)規(guī)范
- 北京青年政治學(xué)院《遙感影像處理與分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度臨時(shí)租車協(xié)議涵蓋代駕及接送機(jī)服務(wù)合同3篇
- 北京培黎職業(yè)學(xué)院《醫(yī)學(xué)免疫學(xué)K》2023-2024學(xué)年第一學(xué)期期末試卷
- 紙箱回收課程設(shè)計(jì)總結(jié)
- 線描畫魚缸課程設(shè)計(jì)
- 移動(dòng)端wap課程設(shè)計(jì)
- GB/T 42449-2023系統(tǒng)與軟件工程功能規(guī)模測(cè)量IFPUG方法
- 酒店裝修工程預(yù)算表EXCEL模板(推薦)
- NY 5052-2001無(wú)公害食品海水養(yǎng)殖用水水質(zhì)
- 【講座】2020年福建省高職分類考試招生指導(dǎo)講座
- 性格決定命運(yùn)課件
- 學(xué)習(xí)會(huì)計(jì)基礎(chǔ)工作規(guī)范課件
- 雙面埋弧焊螺旋鋼管公稱外公壁厚和每米理論重量
- 富士施樂VC2265打印機(jī)使用說(shuō)明SPO
- 服務(wù)態(tài)度決定客戶滿意度試題含答案
- 教科版四年級(jí)科學(xué)上冊(cè)全冊(cè)復(fù)習(xí)教學(xué)設(shè)計(jì)及知識(shí)點(diǎn)整理
- 重慶萬(wàn)科渠道制度管理辦法2022
評(píng)論
0/150
提交評(píng)論