ASP.NET實現匿名存取控制

來源:互聯網
上載者:User
asp.net|訪問|控制

  通過學習我掌握了兩種控制方法,實現了對於網站的匿名存取控制,一個是通過IIS實現,另一個是通過ASP.NET實現。個人感覺兩種基本上可以實現的功能沒有什麼差別,不過通過ASP.NET實現的更易於管理和維護。

  對於通過IIS的實現都比較清楚,可以對檔案夾或單個檔案(頁面)設定存取權限,IIS提供了“目錄安全性”和“檔案安全性”的設定方法。並可以通過直接設定不同訪問人的許可權。其中就提供了匿名訪問的控制方法,這裡不再細說。

  ASP.NET控制方法:

  首先介紹例子實現的效果,一個網站登陸以後可以將使用者資訊儲存在一個cookie中,並標識使用者是通過身分識別驗證的,在訪問其他頁面的時候直接對使用者的身份是否通過驗證進行判斷,如果通過即可繼續訪問頁面,如果是一個未通過驗證的匿名訪問使用者(即未登入使用者)則將跳轉到登陸頁面提示使用者登入。設定其中一個使用者註冊頁面為可以匿名訪問,因為商務邏輯上只有允許註冊才能登陸。

  在登陸頁面還是先對使用者的使用者名稱和密碼進行驗證,至於使用與資料庫比對的方法還是到AD中驗證等都可以,然後通過以下的方法將目前使用者在cookie中標識為通過驗證的使用者,並跳轉到使用者跳轉到登陸頁之前請求的頁面。

FormsAuthentication.RedirectFromLoginPage(userName,createPersistentCookie);

  在使用者直接請求的頁面上我們使用如下的方法來驗證使用者。

Context.User.Identity.IsAuthenticated

  Context:擷取與該頁關聯的 System.Web.HttpContext 對象

  User:為當前 HTTP 要求擷取或設定安全資訊

  Identity:擷取目前使用者的標識

  IsAuthenticated:擷取一個bool值,該值指示是否驗證了使用者

  然後我們在Web.config中進行安全設定。

    <authentication mode="Forms">
        <forms loginUrl="Login.aspx"></forms>
</authentication>

  "Forms" 您為使用者提供一個輸入憑據的自訂表單(Web 頁),然後在您的應用程式中驗證他們的身份。使用者憑證標記儲存在 Cookie 中。

    <authorization>
        <deny users="?" />
    </authorization>

  deny表示禁止,users="?"表示匿名使用者

  <location path="NewUser.aspx">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
  </location>

  表示新使用者註冊頁面NewUser.aspx,可以允許任何人訪問。這樣就實現了對於匿名使用者的存取控制。



聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.