Membership 数据表结构详细解释
2015-01-21 11:55
405 查看
表名:aspnet_Applications
说明:保存应用程序信息
表名:aspnet_Paths
说明:路径信息
表名:aspnet_Users
说明:用户信息
表名:aspnet_Membership
说明:成员信息
表名:aspnet_Roles
说明:角色表
表名:aspnet_UsersInRoles
说明:用户角色关系表
表名:aspnet_Profile
说明:Profile对象存储表
表名:aspnet_PersonalizationAllUsers
表名:aspnet_PersonalizationPerUser
1.aspnet_Application :用来保存系统名的,每一个不同的系统名都会生成一个唯一的ID,这个ID是与其它关联关系的外键。
2.aspnet_Users :用户表,但是它只保存了用户ID基本不会变的信息,并且会有一个Uniqueidentifier类型的字段UserId来作为每个用户的唯一标识(并 且是主键),以方便与其它表的关联。值得注意的是还有一个ApplicationId字段,通过这个字段与aspnet_Application进行关
联,以此来将区分用户是属于哪个系统的。由于UserName字段本身并不是主键,所以它是可以有重复值的,但不是说一个系统允许存在相同的用户名。正是 ApplicationId字段来标识相同的用户名是属于不同的系统的。ApplicationId字段的作用就在于此,所以你可以看到很多表中都有这个 字段的存在。
3.aspnet_Membership :保存着用户的一些可变(不可变)的基本信息。
从这些可以看到,在aspnet_Membership表存储着一些用户的公共属性信息。根本不同的需求的,我们可能还需要其它的一些自定义字段,在这种情况下最好不要直接修改这个表,而是应该新建一个表,或利用Profile功能来实现。
二、如何注册所需的数据库及存储过程。
了解了数据库结构后,接下来要解决的是就是如何创建这样一个数据库了。我们不可能手工的去创建这些表和存储过程的,当然后去手工去运行一段SQL语句也不是有点麻烦的。不用担心,.NET 2.0中已经提供相关的工具来注册这样一个数据库了,运行.NET命令行窗口,运行aspnet_regsql命令,会出现向导窗口。一段解析性提示进入下一步:
两个选项分别为配置aspnet数据库和删除已配置的aspnet数据库,进入下一步后:
输入所需的数据库验证信息,在Database字段处需要注意:如果有选择已有的数据库,那这些表和存储过程将被创建到已有的数据库中;如果输入不存在的数据库名,那么将会创建一个新的数据库,存放这些表和存储过程,默认数据名为aspnetdb。再两步以后就会完成了数据库的注册了。
BTW:aspnet_regsql 命令还可以做很多事,可以参考MSDN得到更多的帮助。
三、配置文件的支持。
Provider 模式非常依赖配置文件支持,实际上它是创建型设计模式的一种很直接的应用。由于框架内部调用都是抽象类型的接口,所以要给通过配置文件给这些抽象类提供具体的实现类,并配置一些所需的参数。在asp.net 2.0的web.config文件中,提供了对这些配置的直接支持,并且还可以很容易的进行扩展。
四、接口支持。
继承了.NET 框架的优良传统,整个的Membership,Roles,Profile等功能都提供了非常简单的API供开发人员调用,Membership, Roles都被封装成静态类,并且重载了非常多的方法重载,以方便调用。而Profile更是在VS 2005 IDE的帮助下,可以动态生成类型定义,支持设计时的属性调用。
说明:保存应用程序信息
字段名 | 类型 | 属性 | 说明 |
ApplicationName | nvarchar(256) | 应用程序名 | |
LoweredApplicationName | nvarchar(256) | 小写的应用程序名 | |
ApplicationId | uniqueidentifier | PK | 应用程序的id, GUID值 |
Description | nvarchar(256) | nullable | 应用程序的 描述 |
说明:路径信息
字段名 | 类型 | 属性 | 说明 |
ApplicationId | uniqueidentifier | FK: appnet_Applications.ApplciationId | 应用程序Id |
PathId | uniqueidentifier | PK | 路径Id |
Path | nvarchar(256) | 路径信息 | |
LoweredPath | nvarchar(256) | 小写的路径信息 |
说明:用户信息
字段名 | 类型 | 属性 | 说明 |
ApplicationId | uniqueidentifier | 应用程序Id | |
UserId | uniqueidentifier | PK | 用户Id |
UserName | nvarchar(256) | 用户名 | |
LoweredUserName | nvarchar(256) | 小写的用户名 | |
MobileAlias | nvarchar(16) | 移动电话的pin码(未使用) | |
IsAnonymous | bit | 是否为匿名用户 | |
LastActivityDate | datetime | 最后活动日期 |
说明:成员信息
字段名 | 类型 | 属性 | 说明 |
ApplicationId | uniqueidentifier | FK: appnet_App lications. ApplciationId | 应用程序Id |
UserId | uniqueidentifier | FK: aspnet_Users. UserID | 用户Id |
Password | nvarchar(128) | 密码 | |
PasswordFormat | int | 存储密码的格式 | |
PasswordSalt | nvarchar(128) | 密码的Hash值 | |
MobilePIN | nvarchar(16) | 手机PIN码 | |
Email | nvarchar(256) | 电子邮件地址 | |
LoweredEmail | nvarchar(256) | 小写的电子邮件地址 | |
PasswordQuestion | nvarchar(256) | 遗忘密码问题 | |
PasswordAnswer | nvarchar(128) | 遗忘密码答案 | |
IsApproved | bit | ||
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 | 备注 |
说明:角色表
字段名 | 类型 | 属性 | 说明 |
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 |
说明:Profile对象存储表
字段名 | 类型 | 属性 | 说明 |
UserId | uniqueidentifier | FK: aspnet_Users.UserId | 用户ID |
PropertyNames | ntext | 属性名称 | |
PropertyValuesString | ntext | 字符串值 | |
PropertyValuesBinary | image | 二进制值 | |
LastUpdatedDate | datetime | 最后更新日期 |
字段名 | 类型 | 属性 | 说明 |
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 | 最后更新日期 |
1.aspnet_Application :用来保存系统名的,每一个不同的系统名都会生成一个唯一的ID,这个ID是与其它关联关系的外键。
2.aspnet_Users :用户表,但是它只保存了用户ID基本不会变的信息,并且会有一个Uniqueidentifier类型的字段UserId来作为每个用户的唯一标识(并 且是主键),以方便与其它表的关联。值得注意的是还有一个ApplicationId字段,通过这个字段与aspnet_Application进行关
联,以此来将区分用户是属于哪个系统的。由于UserName字段本身并不是主键,所以它是可以有重复值的,但不是说一个系统允许存在相同的用户名。正是 ApplicationId字段来标识相同的用户名是属于不同的系统的。ApplicationId字段的作用就在于此,所以你可以看到很多表中都有这个 字段的存在。
3.aspnet_Membership :保存着用户的一些可变(不可变)的基本信息。
字段 | 作用 |
ApplicationId | 标识用户属于哪个系统 |
UserId | 与aspnet_Users关联的字段 |
Password | 加密或未加密的密码 |
PasswordFormat | 指示密码的存储格式(明文或使用的加密码算法) |
PasswordSalt | 用于辅助密码验证的字段(不可逆算法进行密码验证时所需) |
MobilePIN | 手机PIN码,同样可以唯一标 |
Email | Email (可配置Email是否必须唯一) |
LoweredEmail | 小写的Email |
PasswordQuestion | 密码安全问题(可配置是否必须) |
PasswordAnswer | 密码安全问题答案 |
IsApproved | 用户是否已认证(为0时用户无法登录) |
IsLockedOut | 用户是否已锁定(可配置密码重试次数,超过则自动锁定该用户) |
CreateDate | 创建时间 |
LastLoginDate | 最后登录时间 |
LastPasswordChangedDate | 最后修改密码的时间 |
LastLockoutDate | 最后被锁定的时间 |
FailedPasswordAttemptCount | 密码重试次数 |
FailedPasswordAttemptWindowStart | 密码失败尝试窗口打开 时间 |
FailedPasswordAnswerAttemptCount | 安全密码重试次数 |
FailedPasswordAnswerAttemptWindowStart | 类同FailedPasswordAttemptWindowStart |
Comment | 其它自定义信息 |
二、如何注册所需的数据库及存储过程。
了解了数据库结构后,接下来要解决的是就是如何创建这样一个数据库了。我们不可能手工的去创建这些表和存储过程的,当然后去手工去运行一段SQL语句也不是有点麻烦的。不用担心,.NET 2.0中已经提供相关的工具来注册这样一个数据库了,运行.NET命令行窗口,运行aspnet_regsql命令,会出现向导窗口。一段解析性提示进入下一步:
两个选项分别为配置aspnet数据库和删除已配置的aspnet数据库,进入下一步后:
输入所需的数据库验证信息,在Database字段处需要注意:如果有选择已有的数据库,那这些表和存储过程将被创建到已有的数据库中;如果输入不存在的数据库名,那么将会创建一个新的数据库,存放这些表和存储过程,默认数据名为aspnetdb。再两步以后就会完成了数据库的注册了。
BTW:aspnet_regsql 命令还可以做很多事,可以参考MSDN得到更多的帮助。
三、配置文件的支持。
Provider 模式非常依赖配置文件支持,实际上它是创建型设计模式的一种很直接的应用。由于框架内部调用都是抽象类型的接口,所以要给通过配置文件给这些抽象类提供具体的实现类,并配置一些所需的参数。在asp.net 2.0的web.config文件中,提供了对这些配置的直接支持,并且还可以很容易的进行扩展。
四、接口支持。
继承了.NET 框架的优良传统,整个的Membership,Roles,Profile等功能都提供了非常简单的API供开发人员调用,Membership, Roles都被封装成静态类,并且重载了非常多的方法重载,以方便调用。而Profile更是在VS 2005 IDE的帮助下,可以动态生成类型定义,支持设计时的属性调用。
相关文章推荐
- Membership 数据表结构详细解释
- Membership 数据表结构详细解释
- ValidationGroup 使用 留意 +++Membership 数据表结构详细解释
- 数据结构实验之图论四:迷宫探索(超详细解释)
- 内部硬盘的硬件结构和工作原理进行了详细解释
- Apache Cassandra,目前唯一的用于大数据的NoSQL数据库的结构,顺便解释NoSQL和Big data
- sock结构和socket结构详细解释
- 数据结构形象解释
- 数据结构之树的相关名字解释
- C数据结构之单链表详细示例分析
- Oracle数据类型详细解释
- 导出sql server数据表的详细结构(加强版),加入外键列
- 拓扑结构详细解释
- STL 数据结构部分原创入门教程,要详细资料请百度
- 实用数据结构---线段树(超详细讲解)
- 一个简单但详细的解释Windows文件映射读取数据文件的例子
- 数据结构课程设计---魔王语言解释
- 导出sql server数据表的详细结构
- PE结构详细解释 (棋幽版视频教程)
- 非常详细的Linux目录结构及文件解释