标签:
说明:保存应用程序信息(系统名)
每一个不同的系统名都会生成一个唯一的ID,这个ID是与其它关联关系的外键。
字段名 |
类型 |
属性 |
说明 |
ApplicationName |
nvarchar(256) |
|
应用程序名 |
LoweredApplicationName |
nvarchar(256) |
|
小写的应用程序名 |
ApplicationId |
uniqueidentifier |
PK |
应用程序的id, GUID值 |
Description |
nvarchar(256) |
nullable |
应用程序的 描述 |
说明:用户信息
用户表,只保存了用户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 |
|
最后活动日期 |
说明:角色表
存储系统的所有角色,同样用ApplicationId来标识该角色属于哪个系统所有的。
字段名 |
类型 |
属性 |
说明 |
ApplicationId |
uniqueidentifier |
FK: appnet_Applications.ApplciationId |
应用程序Id |
RoleId |
uniqueidentifier |
PK |
角色Id |
RoleName |
nvarchar(256) |
|
角色名称 |
LoweredRoleName |
nvarchar(256) |
|
小的角色名称 |
Description |
nvarchar(256) |
nullable |
描述 |
说明:用户角色关系表
多对多的关系表,存储哪些用户属于哪些角色。
字段名 |
类型 |
属性 |
说明 |
UserID |
uniqueidentifier |
FK: aspnet_Users.UserId |
用户ID |
RoleID |
uniqueidentifier |
FK: aspnet_Roles.RoleId |
角色ID |
说明:成员信息
在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码,同样可以唯一标 |
|
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 |
|
备注 |
说明: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使用。
说明:路径信息
字段名 |
类型 |
属性 |
说明 |
ApplicationId |
uniqueidentifier |
FK: appnet_Applications.ApplciationId |
应用程序Id |
PathId |
uniqueidentifier |
PK |
路径Id |
Path |
nvarchar(256) |
|
路径信息 |
LoweredPath |
nvarchar(256) |
|
小写的路径信息 |
字段名 |
类型 |
属性 |
说明 |
PathId |
uniqueidentifier |
FK: aspnet_Paths.PathId |
路径ID |
PageSetting |
ntext |
|
个性化设置 |
LastUpdatedDate |
datetime |
|
最后更新日期 |
字段名 |
类型 |
属性 |
说明 |
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