ASP.NET/會員資格
從 ASP.Net 版本 2.0 開始,微軟包含了一個會員系統,或會員資格提供程式,可以輕鬆地整合到任何具有 MSSql 資料庫後端的 ASP.Net 2.0 網站中。新系統不僅限於登入,還集成了基於角色的身份驗證,以及配置檔案,並且消除了建立自己的系統來做同樣的事情的大部分麻煩。
由於新的會員系統依賴於 MSSql 資料庫後端,因此第一步是進行必要的新增/更改到您的 web.config 檔案中。
如果您目前沒有連線字串條目到您在 web.config 檔案中的 MSSql 資料庫,請先參考 ASP.Net 資料庫部分,然後繼續執行下一步。
假設您已將資料庫連線字串正確地輸入到您的 web.config 檔案中,我們現在將配置您的資料庫並新增必要的表、儲存過程等等。幸運的是,微軟提供了一個工具來完成這項工作,這使得這項工作變得相當輕鬆!該工具被稱為 aspnet_regsql.exe,通常位於以下路徑:C:\windows\microsoft.net\Framework\v2.0.xxxxx\aspnet_regsql.exe。啟動 ASP.Net SQL Server 設定嚮導後,單擊下一步。從下一頁中選擇為應用程式服務配置 SQL Server 選項,然後單擊下一步。此時,嚮導要求您提供 MSSQL 資料庫的路徑/位置。在伺服器框中,輸入您正在使用的 MSSQL 伺服器的完整路徑。如果 SQL 伺服器位於當前機器上,則在框中輸入 localhost。如果您的伺服器位於遠端機器上,那麼您可能需要輸入 SQL 身份驗證,除非您使用的是 Windows 身份驗證。
輸入完所有身份驗證資訊後,從下拉列表中選擇您要使用的資料庫,然後單擊下一步。下一個螢幕將簡單地提供您所選資訊的摘要,向您顯示伺服器和資料庫的名稱,嚮導將把會員架構資訊安裝到其中。單擊下一步將架構安裝到您的資料庫中。如果一切順利,您應該會看到一個成功螢幕,您可以單擊完成。
更新資料庫架構後,下一步是修改我們的 Web.config 檔案並啟用會員資格提供程式。
首先開啟您的 Web.config 檔案。在頁面頂部或靠近頂部,應該是我們之前在資料庫部分中輸入的資料庫連線字串。注意此連線的名稱,例如 LocalSqlServer,或者您為它命名的任何名稱。
在 Web.config 檔案的 <System.Web> 部分內,我們複製並貼上以下程式碼片段
<membership defaultProvider="CustomizedProvider">
<providers>
<add name="CustomizedProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="YourSqlServerConnectionName"
applicationName="MyMembership"
minRequiredPasswordLength="5"
minRequiredNonalphanumericCharacters="0" />
</providers>
</membership>
同樣在 Web.config 檔案的 <System.Web> 部分內,您需要更改您的身份驗證條目,使其看起來像這樣
<authentication mode="Forms" />
假設您的連線字串正確,您正確安裝了會員架構,並且您正確地複製、貼上和修改了以上程式碼,那麼在它正常工作之前,應該不會剩下太多工作了。因此,讓我們儲存我們的 Web.config 檔案並測試它。
測試我們系統的最佳方法是嘗試建立一個使用者。ASP.Net 2.0 中包含幾個專門用於處理會員資格提供程式的 Web 控制元件,這些控制元件應該在您的工具箱中。因此,讓我們在網站的根目錄中建立一個新的 Web 表單。將 CreateUserWizard 從工具箱拖放到您的新頁面上。儲存頁面,然後單擊預覽頁面按鈕/手動在 Web 瀏覽器中載入頁面,然後嘗試填寫所有欄位並建立一個新使用者。如果一切正常,您應該在瀏覽器中看到一個使用者建立成功的框。
現在我們可以建立使用者了,讓我們嘗試以使用者身份登入。在工具箱中,還有一個登入控制元件,我們可以將其拖放到我們之前建立的同一個頁面上。我們還希望新增一個 LoginName 控制元件,以便在登入後,我們可以驗證我們以誰的身份登入。將這些控制元件新增到頁面後,儲存頁面,並在 Web 瀏覽器中再次載入它。使用登入框,嘗試使用您之前建立的帳戶登入。如果一切順利,您應該登入,LoginName 控制元件將顯示您的使用者名稱。
登入 - 標準使用者名稱和密碼登入框。登入控制元件非常可定製。單擊登入按鈕時,預設操作是回發頁面並驗證使用者的憑據。
LoginView - 允許您在頁面的某個部分顯示不同的內容,具體取決於使用者是否已登入。LoginView 還可以用於根據使用者的角色向用戶顯示不同的內容(無論使用者是否已登入)。
PasswordRecovery - 為使用者提供訪問其自身密碼的許可權。需要回答密碼問題。
LoginStatus - 顯示使用者的當前狀態。如果使用者已登入,則此控制元件將顯示登出連結。如果使用者未登入,則此使用者將顯示登入連結。
LoginName - 將顯示當前登入使用者的使用者名稱。如果沒有使用者登入,則不會顯示任何內容。
CreateUserWizard - 幫助您建立新使用者帳戶的嚮導。
ChangePassword - 更改密碼控制元件,允許使用者更改其自身密碼,要求您輸入舊密碼。