c成員資格和角色管理_第1頁
c成員資格和角色管理_第2頁
c成員資格和角色管理_第3頁
c成員資格和角色管理_第4頁
c成員資格和角色管理_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

成員資格和角色管理1.登錄系列控件2.aspnetdb數(shù)據(jù)庫的移植3.成員資格管理4.Forms身份驗(yàn)證5.角色管理成員資格與角色管理

Web站點(diǎn)常見功能包括用戶登錄、創(chuàng)建新用戶、顯示登錄狀態(tài)、顯示登錄用戶名、更新或重置密碼等。在ASP.NET2.0中,新增了一組登錄系列控件,可以無需編寫一行代碼就能實(shí)現(xiàn)相應(yīng)的用戶界面和功能。同時(shí),這些控件還內(nèi)置了豐富的成員對象,提高了應(yīng)用靈活性,另外這些控件還加強(qiáng)了安全方面的控制。例如:默認(rèn)情況下,登錄是以純文本形式工作于HTTP上,若對安全性需要較高,可使用SSL加密的HTTPS。1.登錄系列控件登錄系列控件有7個(gè)控件Login控件:用來實(shí)現(xiàn)登錄;LoginName控件:用來實(shí)現(xiàn)登錄后顯示用戶名;LoginView控件:可為匿名用戶,登錄用戶或不同角色的用戶設(shè)置和顯示不同的視圖內(nèi)容;LoginStatus控件:可根據(jù)當(dāng)前用戶狀態(tài),呈現(xiàn)“登錄”或“注銷”按鈕PasswordRecovery控件:幫助用戶重新設(shè)置用戶密碼,并能向用戶發(fā)送找回密碼的電子郵件ChangePassword控件:實(shí)現(xiàn)更改密碼CreateUserWizard控件:一個(gè)擴(kuò)展的Wizard控件,實(shí)現(xiàn)創(chuàng)建新用戶帳戶1.登錄系列控件ASPNETDB數(shù)據(jù)庫一個(gè)MicrosoftSQLServerExpressEdition文件,用于存儲(chǔ)應(yīng)用程序使用的所有成員關(guān)系和角色管理信息。登錄系列控件使用的后臺(tái)數(shù)據(jù)庫。該數(shù)據(jù)庫提供了一系列數(shù)據(jù)表和幾十個(gè)存儲(chǔ)過程實(shí)現(xiàn)登錄中的一系列功能。它可使用WAT建立。ASP.NET中自帶的Web網(wǎng)站管理工具WAT(WebsiteAdministrationTool),用來幫助開發(fā)人員對Web應(yīng)用程序進(jìn)行可視化配置和管理。1.登錄系列控件WAT的配置結(jié)果都保存在應(yīng)用程序根目錄下的web.config中,若應(yīng)用程序沒有創(chuàng)建web.config文件,WAT將為其創(chuàng)建一個(gè)web.config,隨著配置過程深入,WAT將把配置結(jié)果保存在該web.config中,同時(shí),會(huì)在App_Data文件夾中和生成一個(gè)名為ASPNETDB.mdf的SQLServerExpress數(shù)據(jù)庫文件,請記住刷新網(wǎng)站目錄。1.登錄系列控件aspnetdb數(shù)據(jù)庫結(jié)構(gòu):1.登錄系列控件Login控件在實(shí)際開發(fā)中,若確定使用Login控件實(shí)現(xiàn)登錄驗(yàn)證,那么應(yīng)根據(jù)是否實(shí)現(xiàn)自定義登錄事件來區(qū)別對待。一是若應(yīng)用程序無任何特殊要求,這種情況下,主要配置的是Login控件的外觀、樣式、鏈接、行為等屬性。二是出于應(yīng)用需求考慮,實(shí)現(xiàn)自定義登錄驗(yàn)證處理事件,這種情況下,還必須實(shí)現(xiàn)登錄驗(yàn)證處理事件。1.登錄系列控件Login控件常用外觀屬性:名稱數(shù)據(jù)類型描述FailureTextstring登錄失敗時(shí)的提示說明InstructionTextstring登錄說明文字LoginButtonImageUrlstring登錄按鈕中顯示的圖像URLLoginButtonTextstring登錄按鈕中文字LgoinButtonTypeButtonType枚舉登錄按鈕類型,三個(gè)枚舉:Button,Image、LinkRememberMeTextstring默認(rèn)值“下次記住我”UserNamestring輸入的用戶名Passwordstring輸入的密碼1.登錄系列控件名稱數(shù)據(jù)類型描述DestinationPageUrlstring驗(yàn)證通過后定向的頁面UrlDisplayRememberMebool是否顯示CheckBox控件VisibleWhenLoggedInbool用戶驗(yàn)證后是否還顯示Login控件Login控件常用行為屬性:1.登錄系列控件LoginName控件該控件用于登錄驗(yàn)證后,顯示當(dāng)前用戶名。它只有一個(gè)比較重要的屬性:

FormatString:缺省為{0}若要顯示如右效果,則該屬性該設(shè)置為:歡迎您,{0}LoginView控件

該控件能基于自定義模板屬性,為不同用戶/角色顯示不同的視圖內(nèi)容。另外,該控件還有個(gè)重要的RoleGroups屬性,用于獲取為具有特定角色的用戶而設(shè)置的視圖內(nèi)容。

1.登錄系列控件LoginStatus控件

該控件只有兩種用戶驗(yàn)證狀態(tài),登錄和注銷。點(diǎn)擊登錄時(shí),自動(dòng)轉(zhuǎn)向登錄頁面(缺省的是Login.aspx),點(diǎn)擊注銷,鏈接自動(dòng)變成登錄。該控件既可以使用文本按鈕,也可以使用圖片按鈕,關(guān)鍵是要設(shè)置LoginImageUrl和LogOutImageUrl。ChangePassword控件該控件內(nèi)置了兩個(gè)視圖:一是更改密碼視圖,若是允許匿名用戶修改密碼,可修改DisplayUserName屬性;二是成功視圖。顯示一條成功信息。1.登錄系列控件1.登錄系列控件CreateUserWizard控件CreateUserWizard控件是一個(gè)經(jīng)過了擴(kuò)展了的Wizard控件,能夠在aspnetdb數(shù)據(jù)庫中快速創(chuàng)建新用戶。默認(rèn)情況下,該控件只包括兩個(gè)步驟:注冊新帳戶和完成??梢宰远x各步驟:1.登錄系列控件密碼最短長度為7,其中必須包含以下非字母數(shù)字字符1方法一:密碼請用~!@#$%^&*()_+中的一個(gè)試一下,肯定就好了!

方法二:

1.所有的站點(diǎn)都改變,找到machine.config文件

<membership>

<providers>

<add

name="AspNetSqlMembershipProvider"

minRequiredPasswordLength="7"

minRequiredNonalphanumericCharacters="1"

</providers>

</membership>里面有兩個(gè)屬性,一個(gè)是minRequiredPasswordLength,意思是最長密碼,默認(rèn)為7另一個(gè)是minRequiredNonalphanumericCharacters,默認(rèn)為1,意思是至少有一個(gè)非字母字符,只要把它改成0就可以了。

2.假如只是對某一個(gè)站點(diǎn),只要修改web.config的值,把上面的代碼插入在<system.web>下面。

1.登錄系列控件PasswordRecovery控件在實(shí)際應(yīng)用中,對于需要找回密碼的用戶,在找回密碼之前,必須向應(yīng)用程序提供一些基本信息:(1)提交用戶名;(2)提交密碼問題答案;(3)用Email發(fā)送重置密碼給用戶。該控件內(nèi)置了3個(gè)用戶視圖,可以轉(zhuǎn)換成模板進(jìn)行設(shè)計(jì)對于發(fā)送電子郵件,必須指定所使用的SMTP服務(wù)器及其相關(guān)配置,例如:服務(wù)器郵件地址是admin@163.com,可以使用WAT進(jìn)行配置,在“應(yīng)用程序”選項(xiàng)中:1.登錄系列控件保存后,web.config中設(shè)置:1.登錄系列控件如果想Login系列控件的使用都基于SQLServer必須進(jìn)行下列操作:(1)在VS.NET的命令提示中,輸入:

aspnet_regsql后按向?qū)нM(jìn)行操作(2)修改web.config2.aspnetdb數(shù)據(jù)庫的移植這是因?yàn)樵趍achine.config(ASP.NET基本的配置文件)文件中存儲(chǔ)了一個(gè)配置節(jié)“LocalSqlServer”,無論應(yīng)用程序是否配置web.config文件,其基本配置都從machine.config文件配置中繼承。最好不要修改machine.config,可以在繼承的web.config中先移除(remove)該配置節(jié),然后再重新加入(add)。2.aspnetdb數(shù)據(jù)庫的移植在實(shí)際應(yīng)用中,每個(gè)Web應(yīng)用程序中有關(guān)成員驗(yàn)證、管理的內(nèi)容都大同小異,沒有本質(zhì)性區(qū)別。將這些內(nèi)容抽象并形成獨(dú)立的模型供開發(fā)人員使用,是個(gè)很好的解決方案,微軟為了實(shí)現(xiàn)這個(gè)解決方案,在ASP.NET2.0中新增了成員資格管理功能,用于與登錄控件和Forms驗(yàn)證結(jié)合使用,其核心是利用內(nèi)置的成員庫表(aspnetdb數(shù)據(jù)庫)、成員資格管理API(例如,Membership,MembershipUser等),成員資格提供程序(例如SqlMembershipProvider、自定義提供程序等),實(shí)現(xiàn)模塊化和自動(dòng)化的成員資格管理模式)。3.成員資格管理成員資格管理結(jié)構(gòu)3.成員資格管理成員資格管理API:兩個(gè)核心類—Membership和MembershipUser。這兩個(gè)類包括了多個(gè)方法和屬性,利用Membership類可以實(shí)現(xiàn)驗(yàn)證、創(chuàng)建和管理用戶等功能,而MembershipUser主要是檢索特定用戶信息的功能,例如,獲取用戶密碼等信息、判斷用戶是否在線等。

注:成員資格管理API并不與數(shù)據(jù)直接打交道,成員資格管理API實(shí)現(xiàn)的是業(yè)務(wù)邏輯,具體的數(shù)據(jù)訪問是由成員資格提供程序?qū)崿F(xiàn);成員資格管理提供程序:

SqlMembershipProvider類繼承于MembershipProvider基類,用于與SQLServer數(shù)據(jù)庫交互,涉及各種數(shù)據(jù)訪問方法3.成員資格管理如果采用其他類型的數(shù)據(jù)庫,必須自定義成員資格管理提供程序,并且這些自定義成員資格管理提供程序也必須繼承于MembershipProvider類.這種結(jié)構(gòu)與三層架構(gòu)之間有很多相似之處,例如:登錄控件相當(dāng)于界面(UI)層,主要負(fù)責(zé)應(yīng)用程序的外觀,而成員資格管理API相當(dāng)于業(yè)務(wù)邏輯層,利用它可實(shí)現(xiàn)不同的應(yīng)用需求;成員資格管理提供程序相當(dāng)于數(shù)據(jù)訪問層,負(fù)責(zé)與數(shù)據(jù)庫交互。如果要將應(yīng)用遷移到其他數(shù)據(jù)庫,只需創(chuàng)建和應(yīng)用自定義成員資格提供程序。3.成員資格管理成員資格管理涉及到的aspnetdb數(shù)據(jù)庫中的表3.成員資格管理<membership>配置節(jié)說明在web.config中,成員資格管理功能的配置都包含在<membership>配置節(jié)中,下面是<membershiop>配置節(jié)的默認(rèn)設(shè)置代碼3.成員資格管理

屬性說明name用于定義成員資格提供程序的名稱type用于設(shè)置成員資格提供程序的類型connectionStringName用于設(shè)置成員資格提供程序運(yùn)行所使用的數(shù)據(jù)連接字符串a(chǎn)pplicationName用于設(shè)置使用成員數(shù)據(jù)庫的應(yīng)用程序名稱,多個(gè)應(yīng)用程序可以通過設(shè)置相同的applicationName使用同一成員數(shù)據(jù)庫,并且不會(huì)出現(xiàn)用戶名重復(fù)的情況enablePasswordRetrieval設(shè)置是否支持成員資格提供程序中的取回密碼功能enablePasswordReset設(shè)置是否支持成員資格提供程序中的密碼重置功能requiresQuestionAndAnswer用于設(shè)置當(dāng)重置和取回密碼時(shí),是否需要輸入密碼問題3.成員資格管理屬性說明requiresUniqueEmail用于設(shè)置存儲(chǔ)在數(shù)據(jù)庫中的電子郵件地址是否唯一passwordFormat密碼存儲(chǔ)格式maxInvalidPasswordAttempts用于嘗試登錄次數(shù)minRequiredPasswordLength密碼長度minRequiredNonalphanumericCharacters包含的特殊字符最小數(shù)量passwordAttemptWindow對連續(xù)未能正確回答密碼重置問題的次數(shù)進(jìn)行跟蹤的時(shí)間長度(分鐘)passwordStrengthRegularExpression指定用于計(jì)算密碼的正則表達(dá)式3.成員資格管理應(yīng)用舉例:(1)創(chuàng)建新用戶

可以使用Membership類的靜態(tài)方法3.成員資格管理使用該方法將界面上的數(shù)據(jù)傳入,CreateUser方法會(huì)自動(dòng)調(diào)用成員資格提供程序中適當(dāng)?shù)姆椒▽?shí)現(xiàn)與數(shù)據(jù)庫的交互。這個(gè)方法處理的結(jié)果用out關(guān)鍵字返回,是一個(gè)MembershipCreateStatus枚舉下面是各枚舉的值及其意義:

3.成員資格管理3.成員資格管理(2)登錄

可以使用Membership類的靜態(tài)方法3.成員資格管理其中界面設(shè)置了最多登錄機(jī)會(huì),其實(shí)現(xiàn)核心是以數(shù)據(jù)綁定方式顯示了Membership類的MaxInvalidPasswordAttempts靜態(tài)屬性。MaxInvalidPasswordAttempts屬性用于進(jìn)行連續(xù)不成功登錄的最多次數(shù),默認(rèn)為5.若需修改,則設(shè)置<membership>配置節(jié)的maxInvalidPasswordAttempts屬性。(3)顯示用戶列表和刪除用戶3.成員資格管理可以使用Membership類的靜態(tài)方法該方法返回一個(gè)MembershipUserCollection類型,這是個(gè)集合類,它實(shí)現(xiàn)了ICollection和IEnumerable接口,而GridView控件能夠接受實(shí)現(xiàn)了IEnumerable接口的數(shù)據(jù)源數(shù)據(jù),所以可以將其與GridView控件直接綁定。刪除可用靜態(tài)方法:3.成員資格管理(4)更新用戶信息可以使用Membership類的靜態(tài)方法這個(gè)方法需要一個(gè)MembershipUser對象參數(shù),可用MembershipUser的GetUser方法獲得3.成員資格管理示例代碼:

MembershipUsermu=Membership.GetUser(username);mu.Email=email;mu.Comment=comment;Membership.UpdateUser(mu);5.實(shí)現(xiàn)自定義成員資格提供程序假如我們用格式如下的XML文件存儲(chǔ)用戶信息

3.成員資格管理<?xmlversion="1.0"encoding="utf-8"?><Users><User><UserName>Tom</UserName><Password>polaris.tom@</Password><EMail>polaris.tom@</EMail></User><User><UserName>John</UserName><Password>polaris.tom@</Password><EMail>polaris.tom@</EMail></User></Users>3.成員資格管理我們要用一個(gè)類來實(shí)現(xiàn)自定義成員管理提供程序,這個(gè)類必須實(shí)現(xiàn)ProviderBase、MembershipProvider類部分方法,具體要實(shí)現(xiàn)的方法請?jiān)贛SDN中查詢“實(shí)現(xiàn)成員資格提供程序”,這幾個(gè)類關(guān)系如下:3.成員資格管理如果應(yīng)用程序使用了自定義的成員資格提供程序,以及自定義的數(shù)據(jù)源,則必須對web.config文件的<membership>配置節(jié)進(jìn)行正確配置。3.成員資格管理在前面的學(xué)習(xí)中,我們已經(jīng)使用了ASP.NET2.0中的成員資格管理功能輕松實(shí)現(xiàn)了登錄等功能,但在其中存在了一個(gè)潛在的問題:無論任何用戶登錄之后,都可以進(jìn)入用戶管理頁面,進(jìn)行用戶管理,這在實(shí)際應(yīng)用中是絕對不允許的,即這樣的程序沒有對用戶進(jìn)行訪問授權(quán),換句話說沒有設(shè)置用戶的訪問權(quán)限。一般采用的授權(quán)方式是:定義不同的角色,為角色設(shè)置一定的權(quán)限,再把用戶映射到這些角色上。4.角色管理1.使用WAT進(jìn)行角色管理

例如:項(xiàng)目分為兩個(gè)角色:開發(fā)人員和測試人員,項(xiàng)目中有兩個(gè)文件夾,develop和test。develop僅供開發(fā)人員使用,而test僅供測試人員使用??梢允褂肳AT進(jìn)行配置:

4.角色管理添加兩個(gè)角色:開發(fā)人員和測試人員后,可以按要求配置訪問規(guī)則,在應(yīng)用程序的配置文件web.config中出現(xiàn)一個(gè)配置節(jié):

<roleManager

enabled="true"/>4.角色管理相應(yīng)的文件夾中出現(xiàn)的web.config配置,如下

<system.web><authorization><allowroles="開發(fā)人員"/><denyroles="測試人員"/><denyusers="?"/></authorization></system.web>這樣配置好后,develop文件夾就只能被開發(fā)人員訪問,而不能被測試人員訪問。4.角色管理2.角色管理模型4.角色管理角色管理API一個(gè)核心類—Roles類,Roles類中包含了多個(gè)方法和屬性,利用這些成員對象,可快速實(shí)現(xiàn)創(chuàng)建新用戶,為用戶分配/刪除角色、獲取角色信息,判斷角色中是否包含用戶,設(shè)置緩存角色的Cookie等。

注:角色管理API并不與數(shù)據(jù)直接打交道,角色管理API實(shí)現(xiàn)的是業(yè)務(wù)邏輯,具體的數(shù)據(jù)訪問是由角色管理提供程序?qū)崿F(xiàn);成員資格管理提供程序默認(rèn)使用權(quán)SqlRoleProvider類,用于與SQLServer數(shù)據(jù)庫交互,涉及各種數(shù)據(jù)訪問方法,如果采用其他類型的數(shù)據(jù)庫,必須自定義角色管理提供程序,并且這些自定義角色管理提供程序也必須繼承于RoleProvider類.5.角色管理3.角色管理涉及到的aspnetdb數(shù)據(jù)庫中的表如下

一個(gè)用戶對應(yīng)多個(gè)角色,而一個(gè)角色也對應(yīng)多個(gè)用戶,所以會(huì)出現(xiàn)用戶/角色表(aspnet_UsersInRoles)。4.角色管理4.<roleManager>配置節(jié)說明在web.config中,角色管理功能的配置都包含在<roleManager>配置節(jié)中,下面是<roleManager>配置節(jié)的默認(rèn)設(shè)置代碼4.角色管理屬性說明enabled是否啟用角色管理cacheRolesInCookie是否啟用在Cookie中緩存角色信息的功能cookieName存儲(chǔ)角色名稱的Cookie的名稱。默認(rèn)值為".ASPXROLES"cookiePath角色名稱Cookie的路徑。默認(rèn)值為"/"。cookieProtection設(shè)置CookieProtection枚舉,(1)All,表示同時(shí)使用Validation和Encryption方式保護(hù)Cookie;(2)None,不采取任何保護(hù)方式;(3)Encryption,表示采用加密方式保護(hù)Cookie;(4)Validation,表示采取驗(yàn)證方式,以確保在Cookie發(fā)往服務(wù)器過程中信息未被修改。默認(rèn)為AllcookieRequireSSL角色名稱Cookie是否需要使用SSL來發(fā)送到服務(wù)器4.角色管理屬性說明cookieSlidingExpiration否將定期重置角色名稱Cookie的過期日期和時(shí)間cookieTimeout是否啟用在Cookie中緩存角色信息的功能cookieName角色cookie失效時(shí)間createPersistentCookie是否會(huì)持久性cookiedefaultProvider角色提供程序的名稱,默認(rèn)值為"AspNetSqlRoleProvidermaxCachedResults緩存在角色Cookie中的角色名稱的最大數(shù)目,默認(rèn)為254.角色管理5.應(yīng)用舉例4.角色管理先使用Roles類的靜態(tài)方法判斷角色名是否存在;再使用Roles類的靜態(tài)方法(2)刪除角色先使用Roles類的靜態(tài)方法4.角色管理(1)創(chuàng)建新角色獲得該角色下的所有用戶,返回一個(gè)string數(shù)組,可利用數(shù)組的length屬性判斷該角色下有多少用戶,若無用戶可進(jìn)行刪除再使用Roles類的靜態(tài)方法可利用返回的布爾值判斷是否刪除成功

(3)為角色添加用戶或從角色中移除用戶添加可以使用Roles類的靜態(tài)方法

4.角色管理或者:

移除可以使用Roles類的靜態(tài)方法:

4.角色管理或者使用6.實(shí)現(xiàn)自定義角色管理提供程序假如我們用格式如下的XML文件存儲(chǔ)用戶角色信息4.角色管理我們要用一個(gè)類來實(shí)現(xiàn)自定義角色管理提供程序,這個(gè)類必須實(shí)現(xiàn)ProviderBase的Initialize方法,以及RoleProvider類的ApplicationName屬性和10個(gè)方法,具體要實(shí)現(xiàn)的方法請?jiān)贛SDN中查詢“自定義角色管理提供程序”如果應(yīng)用程序使用了自定義的成員資格提供程序,以及自定義的數(shù)據(jù)源,則必須對web.config文件的<roleManager>配置節(jié)進(jìn)行正確配置,至少需要配置應(yīng)用程序所使用的角色管理提供程序,是否啟用角色管理功能等內(nèi)容。

4.角色管理4.角色管理一、概述Web站點(diǎn)的頁面訪問分為兩種類型:一是允許所有用戶訪問,即無需用戶憑證(例如:用戶名和密碼)都可以訪問頁面。另一種是允許部分用戶訪問,用戶必須提交用戶憑證才能訪問相關(guān)資源。對于后者,主要涉及兩個(gè)重要的概念:身份驗(yàn)證和授權(quán)。所謂身份驗(yàn)證是指確定發(fā)出請求的用戶的身份,即解決是誰發(fā)出的請求;一旦能通過驗(yàn)證,用戶應(yīng)該獲得一個(gè)標(biāo)識(shí)(類似于參加一個(gè)會(huì)議的會(huì)議證,一個(gè)可以識(shí)別用戶的令牌),用戶可以訪問特定的資源,這個(gè)過程叫授權(quán),

解決的是用戶能訪問什么資源的問題。5.Forms身份驗(yàn)證二、ASP.NET的身份驗(yàn)證方式1.Windows身份驗(yàn)證(WindowsAuthentication)適用于企業(yè)內(nèi)部Intranet中使用,適合于用戶數(shù)目固定,且這些用戶擁有已存在的Windows用戶帳戶的情況。它的缺點(diǎn)是它不能通過代理服務(wù)器工作,因此對于大多數(shù)的Web應(yīng)用程序不合適。2.Forms身份驗(yàn)證(FormsAuthentication)它可以支持很多瀏覽器且在Internet上有著廣泛的支持,主要是基于Cookie來實(shí)現(xiàn)用戶身份驗(yàn)證,它的主要缺點(diǎn)是在于它需要自己編寫身份驗(yàn)證邏輯(不管是自行編寫的代碼或登錄系列控件中內(nèi)置的代碼)。5.Forms身份驗(yàn)證3.Passport身份驗(yàn)證(PassportAuthentication)Microsoft.NETPassport是一種用戶身份驗(yàn)證服務(wù),站點(diǎn)用戶可使用該服務(wù)創(chuàng)建單次登錄名和密碼,從而方便地訪問所有啟用.NETPassport的網(wǎng)站和服務(wù)。啟用.NETPassport的站點(diǎn)依靠.NETPassport中央服務(wù)器來驗(yàn)證用戶,而不是主持和維護(hù)它們自己的專用身份驗(yàn)證系統(tǒng)。

用戶使用同樣的用戶名和密碼就可以登錄到許多Internet站點(diǎn),例如:Hotmail和MSN都使用.NETPassport來驗(yàn)證用戶。缺點(diǎn):(1)使用這個(gè)服務(wù)要付費(fèi);(2)需要每個(gè)用戶都要有一個(gè)有效的.NETPassport賬戶5.Forms身份驗(yàn)證三、啟用Forms身份驗(yàn)證1.配置IIS使用匿名身份驗(yàn)證IIS—默認(rèn)網(wǎng)站,右鍵,目錄安全性注:在VS.NETIDE中開發(fā)時(shí),未將網(wǎng)站建立在IIS中時(shí)不需要配置5.Forms身份驗(yàn)證2.在web.config文件中設(shè)置身份驗(yàn)證

web.config的作用域:

Web.configWeb.configMachine.configPrivateRoot將設(shè)置應(yīng)用于整個(gè)

Web應(yīng)用程序?qū)⒃O(shè)置應(yīng)用于所有

Web應(yīng)用程序Config將設(shè)置應(yīng)用于該目錄中的所有文件5.Forms身份驗(yàn)證在<system.web>配置節(jié)中配置如下:

各參數(shù)含義如下:loginUrl:未被驗(yàn)證的用戶被重定向到的登錄頁面的URLname:用于身份驗(yàn)證目的的Cookie的名稱,默認(rèn)為.ASPXAUTH,特別是一臺(tái)服務(wù)器上有多個(gè)網(wǎng)站啟用Forms身份驗(yàn)證,必須設(shè)定。timeout:以整數(shù)分鐘為單位的時(shí)間量,超過此時(shí)間量,Cookie將過期。默認(rèn)值是30。5.Forms身份驗(yàn)證protection:用于保護(hù)Cookie數(shù)據(jù)的方法。有效值如下所示:a.All(默認(rèn)值),同時(shí)使用數(shù)據(jù)驗(yàn)證和加密來保護(hù)Cookie。配置的數(shù)據(jù)驗(yàn)證算法基于元素。如果三重DES可用并且密鑰足夠長(48位),則使用三重DES進(jìn)行加密。b.None,用于僅將Cookie用于個(gè)性化并且安全要求不高的站點(diǎn)。加密和驗(yàn)證都可以被禁用。盡管以此方式使用Cookie需謹(jǐn)慎,但對于使用.NET框架實(shí)現(xiàn)個(gè)性化的任何方法,此設(shè)置提供了最佳性能。c.Encryption,使用TripleDES或DES加密Cookie,但不對Cookie進(jìn)行數(shù)據(jù)驗(yàn)證。這類Cookie容易受到精心選擇的純文本的攻擊。d.Validation,不加密Cookie的內(nèi)容,但驗(yàn)證Cookie數(shù)據(jù)在傳輸過程中是否未被更改。若要?jiǎng)?chuàng)建Cookie,驗(yàn)證密鑰在緩沖區(qū)中與Cookie數(shù)據(jù)連接,并且計(jì)算出MAC并將其追加到輸出的Cookie5.Forms身份驗(yàn)證3.設(shè)置授權(quán)在web.config中,可以在<system.web>節(jié)的配置節(jié)<authorization>中為ASP.NET應(yīng)用程序設(shè)置身份驗(yàn)證參數(shù)??梢允褂猛ㄅ浞麃砜刂朴脩舻脑L問:*:表示任何人

?:表示未經(jīng)身份驗(yàn)證的用戶

<allowusers=”*”/>:允許任何人訪問

<denyusers=”*”/>:拒絕任何人訪問

<allowusers=”?”/>:允許匿名用戶訪問

<denyusers=”?”/>:拒絕未授權(quán)的用戶訪問注意:順序是先寫allow,再寫deny,不然就會(huì)出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論