转自: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的表结构的更多相关文章

  1. 7.使用EXPLAIN 来分析SQL和表结构_1

    explain:查看执行计划 使用explain 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的 分析你的查询语句或是表结构的性能瓶颈 使用explain 可以获 ...

  2. b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释

    我最近一直在找适合将来用于公司大型bs,b2b b2c的基础架构. 实际情况是要建立一个bs架构b2b.b2c的网站,当然还包括wap站点.手机app站点. 一.现有公司技术人员现状: 1.熟悉asp ...

  3. NopCommerce架构分析(转载)

    原文 一,NopCommerce架构分析之开篇 NopCommerce是.net开源项目中比较成熟的一款业务应用框架,也是电子商务系统中的典范.所以很想多学习一下里面的设计和实现方式. 二,NopCo ...

  4. Equinox开源项目CQRS架构分析

    CQRS架构下Equinox开源项目分析 一.DDD分层架构介绍 本篇分析CQRS架构下的Equinox开源项目.该项目在github上star占有2.4k.便决定分析Equinox项目来学习下CQR ...

  5. tomcat架构分析 (Session管理)

    Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到.在开发app时,我们只是获取一个session,然后向session中存取数据,然后再销毁session.那么如何产生se ...

  6. Magento架构分析,Magento MVC 设计分析

    Magento架构分析,Magento MVC 设计分析 分类:Magento 标签:Magento MVC.Magento架构 669人浏览 Magento 采用类似 JAVA的架构,其扩展与稳定性 ...

  7. Flickr 网站架构分析

    Flickr 网站架构分析 Flickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被 ...

  8. Android架构分析之Android消息处理机制(二)

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本号:4.4.2 在上一篇文章中我们看了一个使用Handler处理Message消息的样例,本文我们 ...

  9. Qualcomm Android display架构分析

    Android display架构分析(一) http://blog.csdn.net/BonderWu/archive/2010/08/12/5805961.aspx http://hi.baidu ...

随机推荐

  1. 数据库插入数据返回当前主键ID值方法

    当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用.我们通常的做法有如下几种: 1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库: 2. ...

  2. MVC5+EF6+AutoMapper+Bootstrap打造在线博客(1.1)

    DAL层的三个Model类: 字典表:CFDict 用户表:CFUser 用户爱好表:CFUserHobby(关联cfuser表和cfdict表) CFUser表和CFUserHobby表是一对多关系 ...

  3. 浏览器自动刷新——基于Nodejs的Gulp LiveReload与VisualStudio完美结合。

    本文版权桂博客园和作者吴双共同所有,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/p/6016055.html 写在前面 大家好我是博客园的蜗牛,博客园的蜗牛就是我 ...

  4. ABP集合贴

    thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>t ...

  5. 初识Servlet

    1.创建DispatcherServlet package myservlet; import java.io.IOException; import javax.servlet.ServletExc ...

  6. Java名字的由来

    Java语言的历程丰富多彩,被现在众多程序员和企业广泛使用,不用质疑这是Java的领先技术的结果. Java是Sun公司开发的一种编程语言,Sun公司最初的方向是让Java来开发一些电器装置程序,如: ...

  7. ArcGIS Engine开发之地图导出

    关于地图导出的方法有很多,但是核心技术就那么一点.下面是从项目实战中总结的一部分地图导出的方法:(以全域导出和区域导出为例) 1.由于地图导出用到的函数和方法容易重复,增加了工作量故首先将其进行封装成 ...

  8. Dagger2 (三) 总结篇

    一.Dagger2注入原理 Dagger2以自动生成代码的形式,帮助我们构建依赖图,在使用依赖的时候方便清晰,这里说明一点,在我们使用Dagger2的时候,绝大多数错误都是编译器就会暴漏出来,这也就决 ...

  9. Atitit.android播放smb 网络邻居视频文件解决方案

    Atitit.android播放smb 网络邻居视频文件解决方案 Android4.4 1.1. Android4视频播放器不能直接地支持smb协议..子好先转换成个http流 1.2. ES文件浏览 ...

  10. mysql查询本周、月、季度、年

    #查询本周记录 select * from product_process where WEEKOFYEAR(update_time)=WEEKOFYEAR(now()); #查询本月数据 selec ...