ASP.NET 教程login
ASP.NET 教程
作者:php.cn  更新時間:2022-04-11 14:18:18

Web Pages 安全


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.gif#雖然true 表示自動建立資料庫表格,但資料庫不會被自動創建。所以資料庫必須存在。


WebSecurity 資料庫

#UserProfile 表格為每個使用者建立儲存一筆記錄,使用者ID(主鍵)與使用者名字(email):

UserId#Email
1 john@johnson.net
2peter@peterson.com
3lars@ larson.eut

Membership 表包含會員訊息,例如使用者是什麼時候創建的,該會員是否已認證,會員是什麼時候認證的,等等。

具體如下所示(有些列不會顯示):

User
#Create
Date
Confirmation
Token
Is
Confirmed
#Last
Password
Failure
Password#Password
Change
112.04.2012 16:12:17#NULL#True# NULLAFNQhWfy....12.04.2012 16:12:17

註解:如果您想看到所有的欄位和內容,請開啟資料庫,看看裡邊的每個表。


簡單的會員設定

在您使用WebSecurity 物件時,如果您的網站沒有設定使用ASP.NET Web Pages 會員系統SimpleMembership,可能會報錯誤。

如果託管服務提供者的伺服器的配置與您本機伺服器的配置不同,也可能會報錯。為了解決這個問題,請在網站的Web.config 檔案中加入以下元素:

<appSettings>
<add key="enableSimpleMembership" value="true" />
</appSettings>


#

PHP中文網