这个网络安全对象为 ASP.NET 网页应用程序提供安全性和身份验证。
使用 WebSecurity 对象,您可以创建用户帐户、登录和注销用户、重置或更改密码等等。
Properties | Description |
---|---|
CurrentUserId | Gets the ID for the current user |
CurrentUserName | Gets the name of the current user |
HasUserId | Returns true if the current has a user ID |
IsAuthenticated | Returns true if the current user is logged in |
Method | Description |
---|---|
ChangePassword() | Changes the password for a user |
ConfirmAccount() | Confirms an account using a confirmation token |
CreateAccount() | Creates a new user account |
CreateUserAndAccount() | Creates a new user account |
GeneratePasswordResetToken() | Generates a token that can be sent to as user by email |
GetCreateDate() | Gets the time the specified membership was created |
GetPasswordChangeDate() | Gets the date and time when password was changed |
GetUserId() | Gets a user ID from a user name |
InitializeDatabaseConnection() | Initializes the WebSecurity system (database) |
IsConfirmed() | Checks if a user is confirmed |
IsCurrentUser() | Checks if the current user matches a user name |
Login() | Logs the user in by setting a token in the cookie |
Logout() | Logs the user out by removing the token cookie |
RequireAuthenticatedUser() | Exits the page if the user is not an authenticated user |
RequireRoles() | Exits the page if the user is not a part of the specified roles |
RequireUser() | Exits the page if the user is not the specified user |
ResetPassword() | Changes a user's password using a token |
UserExists() | Checks if a given user exists |
您必须先创建或初始化 WebSecurity 数据库,然后才能在代码中使用 WebSecurity 对象。
在网站的根目录中,创建一个名为的页面(或编辑页面)_AppStart.cshtml。
将以下代码放入文件中:
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true);
}
上面的代码将在每次网站(应用程序)启动时运行。它初始化 WebSecurity 数据库。
"Users"是 WebSecurity 数据库 (Users.sdf) 的名称。
"UserProfile"是包含用户配置文件信息的数据库表的名称。
"UserId"是包含用户 ID(主键)的列的名称。
"Email"是包含用户名的列的名称。
最后一个参数真的是一个布尔值,表示如果用户配置文件和成员资格表不存在,则应自动创建,否则错误的。
虽然真的表示自动创建数据库表格,数据库本身不会自动创建。它必须存在。
这个用户资料表包含每个用户的一条记录,其中包含用户 ID(主键)和用户名(电子邮件):
UserId | |
---|---|
1 | john@johnson.net |
2 | peter@peterson.com |
3 | lars@larson.eut |
这个会员表将包含有关用户何时创建以及是否(以及何时)确认会员资格的会员信息。
很像这样(有些列未显示):
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 |
如果您的站点未配置为使用 ASP.NET 网页成员资格系统,则使用 WebSecurity 对象时可能会出现错误简单会员制。
如果托管提供商的服务器配置与您的本地服务器不同,则可能会发生这种情况。要解决此问题,请将以下元素添加到站点的 Web.config 文件中:
<appSettings>
<add key="enableSimpleMembership" value="true" />
</appSettings>
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!