码迷,mamicode.com
首页 > Web开发 > 详细

[Membership架构分析1] ASP.NET membership的表结构

时间:2016-08-14 14:39:30      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

转自:http://blog.sina.com.cn/s/blog_650b9ecc0100iqfo.html

技术分享

1)表名:aspnet_Applications

说明:保存应用程序信息(系统名)

每一个不同的系统名都会生成一个唯一的ID,这个ID是与其它关联关系的外键。 

字段名

类型

属性

说明

ApplicationName

nvarchar(256)

 

应用程序名

LoweredApplicationName

nvarchar(256)

 

小写的应用程序名

ApplicationId

uniqueidentifier

PK

应用程序的id, GUID值

Description

nvarchar(256)

nullable

应用程序的 描述

 

2)表名:aspnet_Users

说明:用户信息

用户表,只保存了用户ID基本不会变的信息。

字段名

类型

属性

说明

ApplicationId

uniqueidentifier

 

应用程序Id。通过ApplicationId字段与aspnet_Application关联,以此来区分用户是属于哪个系统的。

UserId

uniqueidentifier

PK

用户Id

UserName

nvarchar(256)

 

用户名。由于UserName字段本身并不是主键,所以它是可以有重复值的,但不是说一个系统允许存在相同的用户名。正是 ApplicationId字段来标识相同的用户名是属于不同的系统的。ApplicationId字段的作用就在于此,所以你可以看到很多表中都有这个 字段的存在。

LoweredUserName

nvarchar(256)

 

小写的用户名

MobileAlias

nvarchar(16)

 

移动电话的pin码(未使用)

IsAnonymous

bit

 

是否为匿名用户

LastActivityDate

datetime

 

最后活动日期

3)表名:aspnet_Roles

说明:角色表

存储系统的所有角色,同样用ApplicationId来标识该角色属于哪个系统所有的。

字段名

类型

属性

说明

ApplicationId

uniqueidentifier

FK: appnet_Applications.ApplciationId

应用程序Id

RoleId

uniqueidentifier

PK

角色Id

RoleName

nvarchar(256)

 

角色名称

LoweredRoleName

nvarchar(256)

 

小的角色名称

Description

nvarchar(256)

nullable

描述

 

4)表名:aspnet_UsersInRoles

说明:用户角色关系表

多对多的关系表,存储哪些用户属于哪些角色。

字段名

类型

属性

说明

UserID

uniqueidentifier

FK: aspnet_Users.UserId

用户ID

RoleID

uniqueidentifier

FK: aspnet_Roles.RoleId

角色ID

5)表名:aspnet_Membership

说明:成员信息

在aspnet_Membership表存储着一些用户的公共属性信息。根据不同的需求,我们可能还需要其它的一些自定义字段,在这种情况下最好不要直接修改这个表,而是应该新建一个表,或利用Profile功能来实现。 

字段名

类型

属性

说明

ApplicationId

uniqueidentifier

FK: appnet_App

lications.

ApplciationId

应用程序Id

标识用户属于哪个系统

UserId

uniqueidentifier

FK: aspnet_Users.

UserID

用户Id

与aspnet_Users关联的字段

Password

nvarchar(128)

 

加密或未加密的密码

PasswordFormat

int

 

存储密码的格式

(明文或使用的加密算法)

PasswordSalt

nvarchar(128)

 

密码的Hash值

用于辅助密码验证的字段(不可逆算法进行密码验证时所需)

MobilePIN

nvarchar(16)

 

手机PIN码

手机PIN码,同样可以唯一标

Email

nvarchar(256)

 

电子邮件地址

Email (可配置Email是否必须唯一)

LoweredEmail

nvarchar(256)

 

小写的电子邮件地址

PasswordQuestion

nvarchar(256)

 

遗忘密码,密码安全问题(可配置是否必须)

PasswordAnswer

nvarchar(128)

 

遗忘密码答案,密码安全问题答案

IsApproved

bit

 

 用户是否已认证(为0时用户无法登录)

IsLockedOut

bit

 

用户是否已锁定(可配置密码重试次数,超过则自动锁定该用户)

CreateDate

datetime

 

创建时间

LastLoginDate

datetime

 

最后登录时间

LastPassword

ChangedDate

datetime

 

最后修改密码的时间

LastLockoutDate

datetime

 

最后一次锁帐号的时间

FailedPassword

AttemptCount

int

 

密码失败尝试次数

密码重试次数

FailedPassword

AttemptWindowStart

datetime

 

密码失败尝试窗口打开时间

FailedPassword

AnswerAttemptCount

int

 

安全密码重试次数

FailedPasswordAnswer

AttemptWindowStart

datetime

 

遗失密码问题输入窗口打开时间

Comment

ntext

 

备注

 

 

6)表名:aspnet_Profile

说明:Profile对象存储表

 存储着用户的一些个性化信息。由于个性化信息的字段是可变的,所以它采用了一种比较灵活的存储方式,类似于:property1:value1;property2:value2的形式(具体分隔符可能有误)来存储多个可变的属性值。再通过解析,分解出正确属性和值。

字段名

类型

属性

说明

UserId

uniqueidentifier

FK: aspnet_Users.UserId

用户ID

PropertyNames

ntext

 

属性名称

PropertyValuesString

ntext

 

字符串值

PropertyValuesBinary

image

 

二进制值

LastUpdatedDate

datetime

 

最后更新日期

 

Aspnet_Paths,aspnet_PersonalizationPerUser,aspnet_PersonalizationAllUsers:

这几个表组合起来存储个性化页面设置,配合WebPart使用。 

7)表名:aspnet_Paths

说明:路径信息

 

 

字段名

类型

属性

说明

ApplicationId

uniqueidentifier

FK: appnet_Applications.ApplciationId

应用程序Id

PathId

uniqueidentifier

PK

路径Id

Path

nvarchar(256)

 

路径信息

LoweredPath

nvarchar(256)

 

小写的路径信息

 

8)表名:aspnet_PersonalizationAllUsers

 

字段名

类型

属性

说明

PathId

uniqueidentifier

FK: aspnet_Paths.PathId

路径ID

PageSetting

ntext

 

个性化设置

LastUpdatedDate

datetime

 

最后更新日期

 

9)表名:aspnet_PersonalizationPerUser

 

字段名

类型

属性

说明

Id

uniqueidentifier

PK

ID

PathID

uniqueidentifier

FK: aspnet_Paths.PathId

路径ID

UserID

uniqueidentifier

FK:aspnet_Users.UserId

用户ID

PageSetting

ntext

 

个性化设置

LastUpdatedDate

datetime

 

最后更新日期

 

另外两个表与用户管理没有直接关系的:

aspnet_WebEvent_Events,用于记录系统在运行过程中出现的一些异常信息,需配合Health monitor使用;

aspnet_SchemaVersions,用于记录当前的框架版本信息,默认已经有记录了

 

结语:

    首先注册控件无非是将信息写入到membership表和users表。

其中在applications表中添加了应用程序记录,其中主要记录的是登录过程和profile的使用两个应用程序,而我们利用profile的时候自动插入到profile表中,里面利用的序列化非常有参考价值,因为可以通过它来存放对象等结构

[Membership架构分析1] ASP.NET membership的表结构

标签:

原文地址:http://www.cnblogs.com/mspeer/p/5770085.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!