asp.net
asp.net中使用基於角色的身份Forms驗證,大致分為四個步驟
1.配置系統檔案web.config
<system.web>
<authentication mode="Forms" >
<forms name=".yaoCookies" loginUrl="/duan/Manage/login.aspx" protection="All"
timeout="20" path="/" />
</authentication>
</system.web>
<forms>標籤中的name表示指定要用於身分識別驗證的 HTTP Cookie. 預設情況下,name 的值是 .ASPXAUTH。採用此種方式驗證使用者後,以此使用者的資訊建立一個FormsAuthenticationTicket類型的身分識別驗證票,再加密序列化為一個字串,最後將這個字串寫到用戶端的name指定名字的Cookie中.一旦這個Cookie寫到用戶端後,此使用者再次訪問這個web應用時會將連同Cookie一起發送到服務端,服務端將會知道此使用者是已經驗證過的.
<forms>標籤中的loginurl指沒有經過身分識別驗證的使用者將會自動的定向到loginurl所指向的路徑. 如果驗證使用者有效,則產生同此使用者對應的身分識別驗證票,寫到用戶端的Cookie,最後將瀏覽器重新導向到使用者初試請求的頁面.其中用System.Web.Security.FormsAuthentication.RedirectFromLoginPage ()方法實現重新導向.
<forms>標籤中的timeout和path,是提供了身分識別驗證票寫入到Cookie到期時間和預設路徑
2.在受保護的檔案夾如Manage下建立一web.config檔案,內容如
<configuration>
<!--指定對整個Manage目錄的存取權限-->
<system.web>
<authorization>
<!--多個角色用,分隔-->
<allow roles="admin,user"/>
<deny users="*" />
</authorization>
</system.web>
<!--也可控制某個頁的許可權
<location path="AnnounceList.aspx">
<system.web>
<authorization>
<allow roles="admin"/>
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="ConfigInfo.aspx">
<system.web>
<authorization>
<allow roles="users"/>
<deny users="*" />
</authorization>
</system.web>
</location>
-->
</configuration>
註:此配置內容也可以加入到系統的web.config檔案中,注意加入位置:
........
</system.web>
<location path="Manage/AnnounceList.aspx">
<system.web>
<authorization>
<allow roles="admin"/>
<deny users="*" />
</authorization>
</system.web>
</location>
</configuration>