Latest web development tutorials

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

lamp 雖然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>