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。
| 虽然 true 表示自动创建数æ�®åº“ 表,但是数æ�®åº“ä¸�会被自动创建。所以数æ�®åº“å¿…é¡»å˜åœ¨ã€‚ |
WebSecurity 数�库
UserProfile 表为æ¯�个用户创建ä¿�å˜ä¸€æ�¡è®°å½•,用户 ID(主键)和用户å��å—(email):
| UserId | |
|---|---|
| 1 | john@johnson.net |
| 2 | peter@peterson.com |
| 3 | lars@larson.eut |
Membership 表包å�«ä¼šå‘˜ä¿¡æ�¯ï¼Œæ¯”如用户是什么时候创建的,该会员是å�¦å·²è®¤è¯�,会员是什么时候认è¯�的,ç‰ç‰ã€‚
具体如下所示(一些列�显示):
| 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 |
注释:如果您想看到所有的列和内容,请打开数�库,看看里边的�个表。
简�的会员�置
在您使用 WebSecurity 对象时,如果您的站点没有�置使用 ASP.NET Web Pages 会员系统 SimpleMembership,�能会报错。
如果托管æœ�务æ��供商的æœ�务器的é…�置与您本地æœ�务器的é…�ç½®ä¸�å�Œï¼Œä¹Ÿå�¯èƒ½ä¼šæŠ¥é”™ã€‚为了解决这个问题,请在网站的 Web.config æ–‡ä»¶ä¸æ·»åŠ ä»¥ä¸‹å…ƒç´ ï¼š
<add key="enableSimpleMembership" value="true" />
</appSettings>
点我分享笔记