ASP.NETWebPages 應用程式的安全與認證透過WebSecurity 物件保證,本節為你介紹了WebSecurity 物件的屬性、方法以及相關的使用。
WebSecurity 物件提供ASP.NET Web Pages 應用程式的安全性和認證。
透過WebSecurity 對象,您可以建立用戶帳戶,登入和登出用戶,重設或更改密碼,以及其他更多與安全相關的功能。
屬性 | 描述 |
---|---|
CurrentUserId | 取得目前登入使用者的ID。 |
CurrentUserName | 取得目前登入使用者的名稱。 |
HasUserId | 如果目前有使用者ID,則傳回true。 |
IsAuthenticated | 如果目前使用者是登入的,則傳回true。 |
方法 | 描述 |
---|---|
ChangePassword() | 為指定的使用者更改密碼。 |
ConfirmAccount() | 使用帳戶確認令牌確認帳戶。 |
CreateAccount() | 建立一個新的使用者帳戶。 |
CreateUserAndAccount() | 建立一個新的使用者帳戶。 |
GeneratePasswordResetToken() | 產生一個密碼重設令牌,可以在電子郵件中傳送給使用者以便使用者可以重設密碼。 |
GetCreateDate() | 取得指定會員建立的時間。 |
GetPasswordChangeDate() | 取得密碼變更的日期和時間。 |
GetUserId() | 根據使用者名稱取得使用者ID。 |
InitializeDatabaseConnection() | 初始化WebSecurity 系統(資料庫)。 |
IsConfirmed() | 檢查用戶是否已被確認。如果已確認,則傳回true。 (例如,可透過電子郵件確認。) |
IsCurrentUser() | 檢查目前使用者的名稱是否與指定使用者名稱相符。如果匹配,則傳回true。 |
Login() | 設定身份驗證令牌,登入使用者。 |
Logout() | 移除身份驗證令牌,註銷使用者。 |
RequireAuthenticatedUser() | 如果使用者未通過身份驗證,則設定HTTP 狀態為401(未經授權)。 |
RequireRoles() | 如果目前使用者不是指定角色的成員,則設定HTTP 狀態為401(未經授權)。 |
RequireUser() | 如果目前用戶不是指定用戶名的用戶,則設定HTTP 狀態為401(未經授權)。 |
ResetPassword() | 如果密碼重設令牌是有效的,請改變使用者的密碼為新密碼。 |
UserExists() | 檢查指定的使用者是否存在。 |
名稱 | 值 |
---|---|
Class | WebMatrix.WebData.WebSecurity |
Namespace | WebMatrix.WebData |
Assembly | WebMatrix.WebData.dll |
如果您想在您的程式碼中使用WebSecurity 對象,首先您必須建立或初始化WebSecurity 資料庫。
在您的Web 根目錄下,建立一個名為_AppStart.cshtml的頁面(如果已存在,則直接編輯頁面)。
將下面的程式碼複製到文件中:
@{ WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true); }
上面的程式碼將在每次網站(應用程式)啟動時運行。它初始化了WebSecurity 資料庫。
"Users"是WebSecurity 資料庫(Users.sdf)的名稱。
"UserProfile"是包含使用者設定資料的資料庫表的名稱。
"UserId"是包含使用者ID(主鍵)的欄位的名稱。
"Email"是包含使用者名稱的欄位的名稱。
最後一個參數true是一個布林值,表示如果使用者配置表和會員表不存在,則會自動建立表。如果不想自動建立表,應設定參數為false 。
![]() | 雖然true表示自動建立資料庫表,但資料庫不會被自動建立。所以資料庫必須存在。 |
---|
UserProfile表為每個使用者建立儲存一筆記錄,使用者ID(主鍵)和使用者名字(email):
UserId | |
---|---|
1 | [email protected] |
2 | [email protected] |
3 | [email protected] |
Membership表包含會員資訊,例如使用者是什麼時候創建的,該會員是否已認證,會員是什麼時候認證的,等等。
具體如下所示(有些欄位不顯示):
User Id | Create Date | Confirmation Token | Is Confirmed | Last Password Failure | Password | Password Change |
---|---|---|---|---|---|---|
1 | 12.04.2012 16:12:17 | NULL | True | NULL | AFNQhWfy.... | 12.04.2012 16:12:17 |
註:如果您想看到所有的列和內容,請打開資料庫,看看裡邊的每個表。
當您使用WebSecurity 物件時,如果您的網站沒有設定使用ASP.NET Web Pages 會員系統SimpleMembership ,可能會報錯。
如果託管服務提供者的伺服器的配置與您本機伺服器的配置不同,也可能會報錯。為了解決這個問題,請在網站的Web.config 檔案中加入以下元素:
<appSettings> <add key="enableSimpleMembership" value="true" /> </appSettings>
以上就是WebSecurity 物件的介紹。