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() | 檢查使用者是否已確認 |
IsCurrentUser() | 檢查當前使用者是否與使用者名稱匹配 |
Login() | 透過在 cookie 中設定令牌來登入使用者 |
Logout() | 透過刪除令牌 cookie 來退出使用者 |
RequireAuthenticatedUser() | 如果使用者不是已認證使用者,則退出頁面 |
RequireRoles() | 如果使用者不屬於指定角色,則退出頁面 |
RequireUser() | 如果使用者不是指定使用者,則退出頁面 |
ResetPassword() | 使用令牌更改使用者的密碼 |
UserExists() | 檢查給定使用者是否存在 |
初始化 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(主鍵)和使用者的名稱(電子郵件)
UserId | 郵箱 |
---|---|
1 | john@johnson.net |
2 | peter@peterson.com |
3 | lars@larson.eut |
Membership 表將包含關於使用者何時建立以及會員是否(以及何時)被確認的會員資訊。
大致如下(部分列未顯示)
User Id |
Create Date |
Confirmation Token |
Is Confirmed |
Last 密碼 Failure |
密碼 | 密碼 Change |
---|---|---|---|---|---|---|
1 | 12.04.2012 16:12:17 | NULL | True | NULL | AFNQhWfy.... | 12.04.2012 16:12:17 |
Simple Membership 配置
如果您的網站未配置為使用 ASP.NET Web Pages 會員系統 SimpleMembership,您在使用 WebSecurity 物件時可能會遇到錯誤。
如果託管提供商的伺服器配置與您的本地伺服器不同,可能會發生這種情況。要解決此問題,請在站點的 Web.config 檔案中新增以下元素
<appSettings>
<add key="enableSimpleMembership" value="true" />
</appSettings>