asp.net中使用基於角色的身份Forms驗證,大致分為四個步驟

來源:互聯網
上載者:User
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>
 



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。