使用Forms Authentication 身分識別驗證 之 Basic Knowledge

來源:互聯網
上載者:User
與Forms Authentication 相關的配置

  在web.config檔案中,<system.web>/<authentication>配置節用於對驗證進行配置。為<authentication>節點提供mode="Forms"屬性可以啟用Forms Authentication。一個典型的<authentication>配置節如下所示:
 

<authentication mode="Forms">
<forms
  name=".ASPXAUTH"
  loginUrl="login.aspx"
  defaultUrl="default.aspx"
  protection="All"
  timeout="30"
  path="/"
  requireSSL="false"
  slidingExpiration="false"
  enableCrossAppRedirects="false"
  cookieless="UseDeviceProfile"
  domain=""
  />
</authentication>

 

FormsAuthentication

FormsAuthentication類用於輔助我們完成表單驗證,並進一步完成使用者登入等功能。該類位於system.web.dll程式集的System.Web.Security命名空間中。通常在Web網站項目中可以直接使用這個類,如果是在類庫項目中使用這個類,請確保引用了system.web.dll。

該類少數幾個常用的方法。

RedirectToLoginPage方法用於從任何頁面重新導向到登入頁,該方法有兩種重載方式:

public static void RedirectToLoginPage ()public static void RedirectToLoginPage (string extraQueryString)

  兩種方式均會使瀏覽器重新導向到登入頁(登入頁的URL由<forms>節點的loginUrl屬性指出)。第二種重載方式還能夠提供額外的查詢字串。

RedirectToLoginPage通常在任何非登入頁的頁面中調用。該方法除了進行重新導向之外,還會向URL中附加一個ReturnUrl參數,該參數即為調用該方法時所在的頁面的URL地址。這是為了方便登入後能夠自動回到登入前所在的頁面。

RedirectFromLoginPage方法用於從登入頁跳回登入前頁面。這個“登入前”頁面即由訪問登入頁時提供的ReturnUrl參數指定。如果沒有提供ReturnUrl參數(例如,不是使用RedirectToLoginPage方法而是用其他手段重新導向到或直接存取登入頁時),則該方法會自動跳轉到由<forms>節點的defaultUrl屬性所指定的預設頁。

  此外,如果<forms>節點的enableCrossAppRedirects屬性被設定為false,ReturnUrl參數所指定的路徑必須是當前Web應用程式中的路徑,否則(如提供其他網站下的路徑)也將返回到預設頁。

RedirectFromLoginPage方法有兩種重載形式:

public static void RedirectFromLoginPage (string userName, bool createPersistentCookie)public static void RedirectFromLoginPage (string userName, bool createPersistentCookie, string strCookiePath)

userName參數表示使用者的標識(如使用者名稱、使用者ID等);

createPersistentCookie參數表示是否“記住我”;

strCookiePath參數表示Cookie路徑。

RedirectFromLoginPage方法除了完成重新導向之外,還會將經過加密(是否加密取決於<forms>節點的protection屬性)的使用者憑證存放到Cookie或Uri中。在後續訪問中,只要Cookie沒有到期,則將可以通過HttpContext.User.Identity.Name屬性得到這裡傳入的userName屬性。

  此外,FormsAuthentication還有一個SignOut方法,用於完成使用者登出。其原理是從Cookie或Uri中移除使用者憑證。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.