3.配置web.config
web.config也是要修改的。在system.web節(jié)點(diǎn)下添加authentication節(jié)點(diǎn)。
membership既然是用于成員資格管理,當(dāng)然要求登錄驗(yàn)證身份,所以首先加上一個(gè)forms驗(yàn)證。
<authentication mode="Forms"> <forms loginUrl="login.aspx" name=".aspxlogin"/> </authentication>
同樣在system.web節(jié)點(diǎn)下添加membership節(jié)點(diǎn)。
<membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="15" hashAlgorithmType=""> <providers> <clear/> <add connectionStringName="ConnectionString" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </providers> </membership>
屬性解釋說明:
defaultProvider:提供程序的名稱。默認(rèn)為 AspNetSqlMembershipProvider。如果你有多個(gè)Provider的話,指定一個(gè)默認(rèn)值是明智的做法 userIsOnlineTimeWindow:指定用戶在最近一次活動(dòng)的日期/時(shí)間戳之后被視為聯(lián)機(jī)的分鐘數(shù)。 hashAlgorithmType:用于哈希密碼的算法的標(biāo)識(shí)符,或?yàn)榭找允褂媚J(rèn)哈希算法。connectionStringName:membership數(shù)據(jù)庫(kù)的連接名稱。 enablePasswordRetrieval:指示當(dāng)前成員資格提供程序是否配置為允許用戶檢索其密碼。 enablePasswordReset:指示當(dāng)前成員資格提供程序是否配置為允許用戶重置其密碼。 requiresQuestionAndAnswer:指示默認(rèn)成員資格提供程序是否要求用戶在進(jìn)行密碼重置和檢索時(shí)回答密碼提示問題。 applicationName:應(yīng)用程序的名稱。 requiresUniqueEmail:指示成員資格提供程序是否配置為要求每個(gè)用戶名具有唯一的電子郵件地址。 passwordFormat:指示在成員資格數(shù)據(jù)存儲(chǔ)區(qū)中存儲(chǔ)密碼的格式。值可選Clear、Encrypted 和 Hashed。Clear 密碼以明文形式存儲(chǔ),這可以提高存儲(chǔ)和檢索密碼的性能,但安全性較差,當(dāng)數(shù)據(jù)源安全性受到威脅時(shí)此類密碼很容易被讀取。Encrypted 密碼在存儲(chǔ)時(shí)進(jìn)行了加密,可以在比較或檢索密碼時(shí)進(jìn)行解密。此類密碼在存儲(chǔ)和檢索時(shí)需要進(jìn)行額外的處理,但比較安全,在數(shù)據(jù)源的安全性受到威脅時(shí)不容易被獲取。Hashed 密碼在存儲(chǔ)到數(shù)據(jù)庫(kù)時(shí)使用單向哈希算法和隨機(jī)生成的 salt 值進(jìn)行哈希處理。在驗(yàn)證某一密碼時(shí),將用數(shù)據(jù)庫(kù)中的 salt 值對(duì)該密碼進(jìn)行哈希計(jì)算以進(jìn)行驗(yàn)證。無法檢索哈希密碼。 maxInvalidPasswordAttempts:鎖定成員資格用戶前允許的無效密碼或無效密碼提示問題答案嘗試次數(shù)。 minRequiredPasswordLength:密碼所要求的最小長(zhǎng)度。 minRequiredNonalphanumericCharacters:有效密碼中必須包含的最少特殊字符數(shù)。 passwordAttemptWindow:在鎖定成員資格用戶之前允許的最大無效密碼或無效密碼提示問題答案嘗試次數(shù)的分鐘數(shù)。這是為了 防止不明來源反復(fù)嘗試來猜測(cè)成員資格用戶的密碼或密碼提示問題答案的額外措施。 passwordStrengthRegularExpression:計(jì)算密碼的正則表達(dá)式。
為membership配置web.config后,再配置其角色管理roleManager,也是在system.web下。
<roleManager enabled="true" cacheRolesInCookie="true"> <providers> <clear/> <add connectionStringName="ConnectionString" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </providers> </roleManager>
屬性解釋說明: cacheRolesInCookie:指示當(dāng)前用戶的角色是否已緩存在某個(gè) Cookie 中。 當(dāng) CacheRolesInCookie 屬性在配置文件中設(shè)置為 true 時(shí),每個(gè)用戶的角色信息就會(huì)存儲(chǔ)在客戶端上的某個(gè) Cookie 中。當(dāng)角色管理檢查確定某個(gè)用戶是否屬于某個(gè)特定角色時(shí),在調(diào)用角色提供程序在數(shù)據(jù)源中檢查角色列表之前,將先檢查角色 Cookie。該 Cookie 在客戶端上會(huì)動(dòng)態(tài)更新以緩存最近已驗(yàn)證的角色名稱。 web.config就配置差不多了。
經(jīng)典論壇討論: http://bbs.blueidea.com/thread-2740354-1-1.html
出處:藍(lán)色理想
責(zé)任編輯:elesa
上一頁 Membership角色與權(quán)限管理 [1] 下一頁 Membership角色與權(quán)限管理 [3]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|