asp.net中使用基于角色的身份forms驗(yàn)證,大致分為四個(gè)步驟
1.配置系統(tǒng)文件web.config
<system.web> 
<authentication mode="forms" > 
 <forms name=".yaocookies" loginurl="/duan/manage/login.aspx" protection="all"
  timeout="20" path="/" />
 </authentication>
</system.web>
<forms>標(biāo)簽中的name表示指定要用于身份驗(yàn)證的 http cookie. 默認(rèn)情況下,name 的值是 .aspxauth。采用此種方式驗(yàn)證用戶后,以此用戶的信息建立一個(gè)formsauthenticationticket類型的身份驗(yàn)證票,再加密序列化為一個(gè)字符串,最后將這個(gè)字符串寫(xiě)到客戶端的name指定名字的cookie中.一旦這個(gè)cookie寫(xiě)到客戶端后,此用戶再次訪問(wèn)這個(gè)web應(yīng)用時(shí)會(huì)將連同cookie一起發(fā)送到服務(wù)端,服務(wù)端將會(huì)知道此用戶是已經(jīng)驗(yàn)證過(guò)的.
<forms>標(biāo)簽中的loginurl指沒(méi)有經(jīng)過(guò)身份驗(yàn)證的用戶將會(huì)自動(dòng)的定向到loginurl所指向的路徑. 如果驗(yàn)證用戶有效,則生成同此用戶對(duì)應(yīng)的身份驗(yàn)證票,寫(xiě)到客戶端的cookie,最后將瀏覽器重定向到用戶初試請(qǐng)求的頁(yè)面.其中用system.web.security.formsauthentication.redirectfromloginpage ()方法實(shí)現(xiàn)重定向.
<forms>標(biāo)簽中的timeout和path,是提供了身份驗(yàn)證票寫(xiě)入到cookie過(guò)期時(shí)間和默認(rèn)路徑
2.在受保護(hù)的文件夾如manage下創(chuàng)建一web.config文件,內(nèi)容如
<configuration>
  <!--指定對(duì)整個(gè)manage目錄的訪問(wèn)權(quán)限-->
  <system.web>
     <authorization>
           <!--多個(gè)角色用,分隔-->
           <allow roles="admin,user"/>
           <deny users="*" />
       </authorization>
  </system.web>
<!--也可控制某個(gè)頁(yè)的權(quán)限
  <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>
注:此配置內(nèi)容也可以加入到系統(tǒng)的web.config文件中,注意加入位置:
........
    </system.web>
    <location path="manage/announcelist.aspx">
     <system.web>
      <authorization>
       <allow roles="admin"/>
       <deny users="*" />
      </authorization>
     </system.web>
    </location>
</configuration>
 
新聞熱點(diǎn)
疑難解答
圖片精選