ASP.NET Web Pages - WebSecurity-objektet

Beskrivning

WebSecurity-objektet tillhandahåller säkerhet och autentisering för ASP.NET Web Pages-applikationer.

Genom WebSecurity-objektet kan du skapa användarkonton, logga in och ut, återställa eller ändra lösenord och så vidare.

WebSecurity objektets referenshandbok - Egenskaper

Egenskap Beskrivning
CurrentUserId Hämta den aktuella användarens ID.
CurrentUserName Hämta den aktuella användarens namn.
HasUserId Hämta värdet som indikerar om den aktuella användaren har ett användar-ID. Om ja, returnera true.
IsAuthenticated Hämta den aktuella användarens autentiseringsstatus.

WebSecurity objektets referenshandbok - Metoder

Egenskap Beskrivning
ChangePassword() Ändra användarens lösenord.
ConfirmAccount() Bekräfta att kontot är giltigt och aktivera kontot.
CreateAccount() Skapa en ny användarkonto.
CreateUserAndAccount() Skapa en ny användarkonto.
GeneratePasswordResetToken() Generera ett lösenordsåterställningsbrevlåset som kan skickas till användaren via e-post.
GetCreateDate() Returnerar datum och tid för skapandet av det specificerade medlemskapet.
GetPasswordChangeDate() Returnerar datum och tid för den senaste ändringen av lösenordet för det specificerade medlemskapet.
GetPasswordFailures
SinceLastSuccess()
Returnerar antalet felaktiga lösenordsinmatningar sedan senaste framgångsrika inloggningen eller skapandet av ett medlemskap.
GetUserId() Returnar användar-ID baserat på specificerat användarnamn.
GetUserIdFrom
PasswordResetToken ()
Returnerar användar-ID från lösenordsåterställningstoken.
InitializeDatabaseConnection() Initialisera medlemskapssystemet genom att ansluta till en databas som innehåller användarinformation.
IsAccountLockedOut() Indikerar om det specifika medlemskapskontot har låst upp på grund av för många misslyckade lösenordsförsök.
IsConfirmed() Returnerar ett värde som indikerar om användaren redan har bekräftats.
IsCurrentUser() Returnerar ett värde som indikerar om det inloggade användarens användarnamn matchar det angivna användarnamnet.
Login() Logga in användaren.
Logout() Logga ut användaren.
RequireAuthenticatedUser() Om användaren inte är autentiserad, sätt HTTP-status till 401 (inte auktoriserad).
RequireRoles() Om den aktuella användaren inte tillhör den angivna rollen, sätt HTTP-statuskod till 401.
RequireUser() Om den aktuella användaren inte är den angivna användaren, sätt HTTP-status till 401.
ResetPassword() Återställ lösenord genom att använda lösenordsåterställningstoken.
UserExists() Kontrollera om användaren finns.

Teknisk data

Name Value
Class WebMatrix.WebData.WebSecurity
Namespace WebMatrix.WebData
Assembly WebMatrix.WebData.dll

Initialisera WebSecurity-databasen

Innan du använder WebSecurity-objektet måste du skapa eller initialisera WebSecurity-databasen.

Skapa eller redigera _AppStart.cshtml-sidan i webbsökvägen.

Skriv följande kod i denna fil:

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", 
true);
}

Webbplatsen kör ovanstående kod vid varje start. Det initialiserar WebSecurity-databasen.

"Users" är namnet på WebSecurity-databasen (Users.sdf)

"UserProfile" är namnet på databastabellen som innehåller användarinställningsinformation.

"UserId" 包含用户 ID 的列的名称(主键)。

"Email" 是包含用户名称的列名。

最后一个参数 true 是一个逻辑值,指示应创建用户配置文件表和成员资格表(如果它们不存在),否则 false。

提示:尽管 true 指示自动创建数据库表,但数据库本身不会被自动创建。它必须存在。

WebSecurity 数据库

UserProfile 表中的每条记录代表一个用户,其中包括用户 ID (主键)和用户名称(email):

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

Membership 表包含成员资格信息,比如用户何时创建以及是否(以及何时)确认成员资格。

类似这样(某些列未列出):

UserId 创建日期 确认
令牌
是否
确认
最后的
密码错误
密码 密码更改
1 12.04.2012 16:12:17 NULL True NULL AFNQhWfy.... 12.04.2012 16:12:17

注释:如果您希望看到所有列和所有内容,请通过 WebMatrix 打开数据库,然后查看每张表。

简单的成员资格配置

如果您的站点未配置为使用 ASP.NET Web Pages 成员资格系统 SimpleMembership,那么可能会在使用 WebSecurity 对象时出现错误。

如果主机提供商的配置与您的本地服务器不同,就会发生错误。为了解决这个问题,请在站点的 Web.config 文件中添加以下元素:

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