ASP.NET Web Pages - WebSecurity objektet

Beskrivelse

WebSecurity objektet tilbyder sikkerhed og autentificering til ASP.NET Web Pages applikationer.

Gennem WebSecurity objektet kan du oprette brugerkontoer, logge ind og ud, nulstille eller ændre adgangskoder osv.

WebSecurity objektets refereringshåndbog - Egenskaber

Egenskab Beskrivelse
CurrentUserId Få den nuværende brugers ID.
CurrentUserName Få den nuværende brugers navn.
HasUserId Få værdien, der indikerer, om den nuværende bruger har et bruger ID. Hvis ja, returneres true.
IsAuthenticated Få den nuværende brugers autentificeringsstatus.

WebSecurity objektets refereringshåndbog - Metoder

Egenskab Beskrivelse
ChangePassword() Ændr brugerens adgangskode.
ConfirmAccount() Bekræft, at kontoen er gyldig og aktiver denne konto.
CreateAccount() Opretter en ny brugerkonto.
CreateUserAndAccount() Opretter en ny brugerkonto.
GeneratePasswordResetToken() Genererer en adgangskodegendannelsestoken, der kan sendes til brugeren via e-mail.
GetCreateDate() Returnerer dato og klokkeslæt for oprettelsen af angivet medlemskabskonto.
GetPasswordChangeDate() Returnerer dato og klokkeslæt for den seneste ændring af adgangskode til angivet medlemskabskonto.
GetPasswordFailures
SinceLastSuccess()
Returnerer antallet af fejlindtastede adgangskoder siden sidste succesfulde login eller oprettelse af medlemskabskonto.
GetUserId() Returner bruger ID baseret på angivet brugernavn.
GetUserIdFrom
PasswordResetToken ()
Returner bruger ID fra adgangskodegenskabs token.
InitializeDatabaseConnection() Initialiser medlemskabssystemet ved at forbinde til en database, der indeholder brugeroplysninger.
IsAccountLockedOut() Indikerer om den angivne medlemskabskonto er låst, fordi der er for mange mislykkede adgangskodeforsøg.
IsConfirmed() Returnerer en værdi, der indikerer om brugeren allerede er bekræftet.
IsCurrentUser() Returnerer en værdi, der indikerer om det indloggede brugerens brugernavn matcher det angivne brugernavn.
Login() Log brugeren ind.
Logout() Log brugeren ud.
RequireAuthenticatedUser() Sæt HTTP-status til 401 (ikke autoriseret), hvis brugeren ikke er godkendt.
RequireRoles() Sæt HTTP-statuskode til 401, hvis den aktuelle bruger ikke tilhører den angivne rolle.
RequireUser() Sæt HTTP-status til 401, hvis den aktuelle bruger ikke er den angivne bruger.
ResetPassword() Nulstil adgangskode ved hjælp af adgangskodegenskabs token.
UserExists() Kontroller om brugeren findes.

Teknisk data

Navn Værdi
Class WebMatrix.WebData.WebSecurity
Namespace WebMatrix.WebData
Assembly WebMatrix.WebData.dll

Initialiser WebSecurity-databasen

Før du bruger WebSecurity-objektet, skal du oprette eller initialisere WebSecurity-databasen.

Opret eller rediger _AppStart.cshtml-side i web-kataloget.

Skriv følgende kode i denne fil:

_AppStart.cshtml

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

Hver gang webstedet starter, kører ovenstående kode. Den initialiserer WebSecurity-databasen.

"Users" er navnet på WebSecurity-databasen. (Users.sdf)

"UserProfile" er navnet på databasetabel, der indeholder brugerindstillinger.

"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>