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 |
Email |
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>