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 | [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 文件中添加以下元素:
<add key="enableSimpleMembership" value="true" />
</appSettings>