ASP.NET Web Pages - WebSecurity 對象
描述
WebSecurity 對象提供 ASP.NET Web Pages 應用程式的安全性和認證。
通過 WebSecurity 對象,您可以創建用戶帳戶,登錄和註銷用戶,重置或者更改密碼,以及其他更多與安全性相關的功能。
WebSecurity 對象參考手冊 - 屬性
屬性 | 描述 |
---|---|
CurrentUserId | 獲取當前登錄用戶的 ID。 |
CurrentUserName | 獲取當前登錄用戶的名稱。 |
HasUserId | 如果當前有用戶 ID,則返回 true。 |
IsAuthenticated | 如果當前用戶是登錄的,則返回 true。 |
WebSecurity 對象參考手冊 - 方法
方法 | 描述 |
---|---|
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 對象,首先您必須創建或者初始化 WebSecurity 資料庫。
在您的 Web 根目錄下,創建一個名為 _AppStart.cshtml 的頁面(如果已存在,則直接編輯頁面)。
將下麵的代碼複製到檔中:
_AppStart.cshtml
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true);
}
上面的代碼將在每次網站(應用程式)啟動時運行。它初始化了 WebSecurity 資料庫。
"Users" 是 WebSecurity 資料庫(Users.sdf)的名稱。
"UserProfile" 是包含用戶配置資訊的資料庫表的名稱。
"UserId" 是包含用戶 ID(主鍵)的列的名稱。
"Email" 是包含用戶名的列的名稱。
最後一個參數 true 是一個布爾值,表示如果用戶配置表和會員表不存在,則會自動創建表。如果不想自動創建表,應設置參數為 false。
![]() |
雖然 true 表示自動創建資料庫 表,但是資料庫不會被自動創建。所以資料庫必須存在。 |
---|
WebSecurity 資料庫
UserProfile 表為每個用戶創建保存一條記錄,用戶 ID(主鍵)和用戶名字(email):
UserId | |
---|---|
1 | john@johnson.net |
2 | peter@peterson.com |
3 | lars@larson.eut |
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 檔中添加以下元素:
<add key="enableSimpleMembership" value="true" />
</appSettings>