實現簡單的 Forms 身份驗證

2021-09-08 06:22:13 字數 1874 閱讀 3432

本主題中的示例演示了 asp.net forms 身份驗證的簡單實現。該示例旨在闡釋關於如何使用 forms 身份驗證來允許使用者登入到 asp.net 應用程式的基礎知識。

一種使用 forms 身份驗證的方便途徑是使用 asp.net 成員資格和 asp.net 登入控制項。asp.net 成員資格提供了儲存和管理使用者資訊的方式,幷包含對使用者進行身份驗證的方法。asp.net 登入控制項使用 asp.net 成員資格,並封裝提示使用者輸入憑據、驗證使用者、恢復或替換密碼等操作所需的邏輯。實際上,asp.net 成員資格和 asp.net 登入控制項在 forms 身份驗證之上提供了乙個抽象層,從而取代了要使用 forms 身份驗證通常必須完成的大部分甚至所有工作。有關更多資訊,請參見使用成員資格管理使用者和 asp.net 登入控制項概述。

在該示例的方案中,使用者請求乙個受保護的資源,即名為 default.aspx 的頁。只有乙個使用者可以訪問此受保護的資源:[email protected],其密碼為「37yj*99p」。該使用者名稱和密碼已硬編碼到 logon.aspx 檔案中。該示例需要三個檔案:web.config 檔案、名為 logon.aspx 的頁以及名為 default.aspx 的頁。這些檔案位於應用程式根目錄中。

如果應用程式的根目錄中有 web.config 檔案,請開啟該檔案。

<?xml version="1.0"?>

system.web元素中,建立乙個authentication元素,並將它的mode屬性設定為 forms,如下面的示例所示:

authentication元素中,建立乙個forms元素,並設定下列屬性:

c#

此頁包含用於收集使用者資訊的 asp.net 伺服器控制項和乙個核取方塊,當使用者單擊該核取方塊時,他們的登入憑據將儲存下來。「登入」按鈕的 click 處理程式包含對照硬編碼的值來檢查使用者的電子郵件位址和密碼的**。(該密碼是強密碼,包含各種非字母字元,且至少為八個字元長。)如果使用者的憑據正確,**將呼叫 formsauthentication 類的 redirectfromloginpage 方法,並傳遞使用者名稱和乙個**於核取方塊的布林值,該值指示是否將身份驗證票證儲存為 cookie。此方法將使用者重定向到最初所請求的頁。如果使用者的憑據不匹配,將顯示一條錯誤訊息。請注意,該頁會匯入包含formsauthentication類的 system.web.security 命名空間。

對於本示例,您將在應用程式根資料夾中建立乙個 asp.net 頁。因為您在配置檔案中指定拒絕所有未通過身份驗證的使用者訪問應用程式的 asp.net 資源(包括 .aspx 檔案,但不包括靜態檔案,例如 html 檔案或包括影象、**等在內的多**檔案),所以當使用者請求該頁時,forms 身份驗證將檢查使用者的憑據,並在必要的時候將使用者重定向到登入頁。您建立的頁還將允許使用者登出,以清除他們的已儲存身份驗證票證 (cookie)。

在應用程式根資料夾中建立乙個名為 default.aspx 的 asp.net 頁。

將下面的標記和**複製到該頁中:

visual basic

"welcome" runat="server" />

c#

"welcome" runat="server" />

此頁顯示使用者的已通過身份驗證的標識,該標識是由formsauthentication類設定的,並作為context.user.identity.name屬性在 asp.net 頁中提供。「登出」按鈕的click處理程式包含具有如下作用的**:呼叫 signout 方法以清除使用者標識並移除身份驗證票證 (cookie)。然後將使用者重定向到登入頁。

簡單Forms身份驗證

web.config login.aspx.cs using system using system.data using system.configuration using system.collections using system.web using system.web.security...

Forms 身份驗證

配置應用程式使用 forms 身份驗證 如果應用程式的根目錄中有 web.config 檔案,請開啟該檔案。複製 在system.web元素中,建立乙個authentication元素,並將它的mode屬性設定為 forms,如下面的示例所示 複製 在authentication元素中,建立乙個fo...

Forms身份驗證

在進行forms身份驗證時,如果採用如下的方法配置web.config的話,則會出現所有的頁面都要進行驗證,這是使用者所不能容忍的,具體 如下 這裡我還要說明一點,很多初學者都會把上面的 寫為 結果會出現不能識別forms節點。如果要實現某個目錄下的forms驗證哪個怎麼辦呢?其實 很簡單,在新增完...