ASP.NET 网页 - 网络安全对象


描述

这个网络安全对象为 ASP.NET 网页应用程序提供安全性和身份验证。

使用 WebSecurity 对象,您可以创建用户帐户、登录和注销用户、重置或更改密码等等。


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

WebSecurity 对象参考 - 方法

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

将以下代码放入文件中:

_AppStart.cshtml

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

上面的代码将在每次网站(应用程序)启动时运行。它初始化 WebSecurity 数据库。

"Users"是 WebSecurity 数据库 (Users.sdf) 的名称。

"UserProfile"是包含用户配置文件信息的数据库表的名称。

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

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

最后一个参数真的是一个布尔值,表示如果用户配置文件和成员资格表不存在,则应自动创建,否则错误的

虽然真的表示自动创建数据库表格,数据库本身不会自动创建。它必须存在。


网络安全数据库

这个用户资料表包含每个用户的一条记录,其中包含用户 ID(主键)和用户名(电子邮件):

UserId Email
1 john@johnson.net
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>