一、ASP.NET四大“插件”的总后台--ASPNETDB (数据库关系图、表和视图 基本表和独立表)

基于.net4.0写的数据库文档生成工具 基于.net4.0写的数据库文档生成工具, 支持mysql, sql server, oracle, sqlte, access, txt, xml 立即下载

(1). 数据库关系图、表和视图(1)  基本表和独立表


  安装数据库:aspnet_regsql 

 

  ASPNETDB 这个隐藏在ASP.NET 2.0四大“插件”
  (
     SqlMembershipProvider、
     SqlRoleProvider、
     SqlProfileProvider、
     SqlPersonalizationProvider
    )
    之后,时不时在你App_Data目录下幽灵般出现的SQL数据库,其实也并没什么神奇之处,
    我等凡夫俗子进去一看,原来也不过如此。不过如果我们要编写自定义Provider的话,
    还是得仔细研究一下下的,因为这4个Provider大部分的业务逻辑还是“封装”在这个数据库里的。
    下面,就容我这个老小弟,为各位兄弟理出里面的表、视图和存储过程。
    
    注:其实还有SqlWebEventProvider,它用到表aspnet_WebEvent_Events和存储过程aspnet_WebEvent_LogEvent。
    因为老小弟认为从性能上考虑,写入本地文件是更好的选择,所以在此不作介绍。
    另外,还有个和ASPNETDB无关的SiteMapProvider,主要配合SiteMapPath 等控件,一般以Xml文件形式存放站点地图。

    看张“地图”先:

    数据库关系图
aspnetdb Diagram
   这张图还是蛮重要的,兄弟们在看后面的内容时,还是要常回来看看,回来看看。
   表
      
     在ASPNETDB数据库的几个表中,都有名称为Lowered***的字段,
     这些字段用来存放***字符串字段的小写形式副本。
     因为这些***字符串字段的比较都是不区分大小写,在表中存放一个小写形式副本,
     能提高字符串比较的速度。
   
     基本表 aspnet_Application、aspnet_Users
  1. 应用程序表
    aspnetdb Diagram

    每个Provider都有一个ApplicationName属性,该属性一般定义在web.config中。
    举一个ProfileProvider的例子(其余3个Provider也一样):

    <system.web>
      ...
      <connectionStrings>
        <add name="SqlSrvConnectionString" connectionString="..."/>
      </connectionStrings>
      ...
      <profile defaultProvider="SqlSrvProfileProvider">
         <providers>
          <add name="SqlSrvProfileProvider"
            type="System.Web.Security.SqlProfileProvider"
            connectionStringName="SqlSrvConnectionString"
            applicationName="WebShop" 
            commandTimeout="30"
            description="SqlSrvProfileProvider" />
         </providers>
        <properties>
          ...
        </properties>
      </profile>
      ...
    </system.web>

    这样你就为你的应用程序注册了一个"WebShop"名称
    (也可以不明确配置applicationName值,默认为应用程序的虚拟根路径,即"/")。
    要注意的是如果你那天把"WebShop"改成了"WebShop1"
    (改成"webshop"、"webShop"等就和没改一样,因为应用程序名称是不区分大小写的),
    你以前的用户自定义属性值就人间蒸发了,因为ProfileProvider把"WebShop1"
    当作一个新的应用程序又新注册了一遍(这时候看过我这篇文章的兄弟
    就该知道怎么办了,哈哈)。

    那4个Provider是否一定要配置成同样的applicationName呢?当然不必要啦!
    你为每个Provider各建一个数据库都没有关系,何况区区applicationName值呢。
    不过在此老小弟建议各位兄弟,别没事找事,还是取一样的名称好。
  2. 基本用户表
    aspnetdb Diagram

    表中MobileAlias字段(以及用户成员资格表aspnet_MemberShip中的MobilePIN字段),
    没见在那里用到。老小弟猜想微软这样做有两种可能:一种是想以后帐户和手机绑定,
    另一种可能就是为手机上网而预留的。

    不知各位DBA兄弟有没看出这个表与它的几个从表的关系,有点不太“讲道理”,
    居然有2个一对一的关系。“为什么不合并?不知道第3范式啊?”,老小弟
    以前想装文化人的时候,总是这样吓唬小小弟的。若干年后,当老小弟看了几本
    架构/模式的书,自我扫盲之后,才知道其实这是ORM模式中的一种。

    另外,微软工程师这样设计还是非常巧妙的。在将公有部分提成几张基本表后,
    数据库关系图4个部分就可合可分了。你可以试着在数据库关系图盖掉某几个部分,
    剩下的部分仍然能够成一个完整的系统。

    最后再交待一下IsAnonymous和LastActivityDate两个字段。
    因为个性化用户配置和页面个性化设置能够支持匿名用户,所以该表中也会存在匿名用户,
    IsAnonymous字段就是指示用户是否为匿名用户的标志字段。
    LastActivityDate字段记录用户最后活动时间。该字段十分重要,每次成功的操作都会更新它,
    同时它也是判断用户是否为非活动用户的依据之一。很多存储过程都会用到它。
         在分块描述4大部分之前,先容我简单地介绍一下两个独立的表:
         aspnet_WebEvent_Events表:记录数据操作的事件日志(可由SqlWebEventProvider启用)。
         aspnet_SchemaVersions表:
         aspnetdb Diagram
         把它的内容贴出来,各位一看就知道了。原来是微软为数据库中的各个部分设置的版本号。

(2).ASPNETDB 表和视图(2) 用户成员资格和角色管理 表

用户成员资格表

相信各位兄弟看了上面这张表,对大部分字段的意思都已了然于胸了。
老小弟在此只为大家理一理剩下的“小部分字段”:
  1. PasswordFormat:密码格式?其实是密码加密方式,其.NET类型为MembershipPasswordFormat枚举。
    下面列出 MembershipPasswordFormat 枚举的3个值:
      Clear          不加密;
      Encrypted   使用web.config中machineKey指定的方法加密/解密;
      Hashed       使用单向 Salted 哈希技术进行加密(注意是单向加密,所以密码是无法检索的)。

    PasswordSalt:上面提到单向 Salted哈希技术在加密时会随机生成一个Salt,该字段就是存放这个Salt值的 。
  2. MobilePIN:手机PIN码,现在还不知道有什么用。参见基本用户表(aspnet_Users)中的MobileAlias字段。
     
  3. IsApproved:微软的定义是:表示是否可以对成员资格用户进行身份验证。
    是否对用户启用成员资格身份验证,在设置为不启用的情况下(其实就是禁用),
    即使用户提供了正确的用户名和密码也是无法成功登录的。(VS->项目->ASP.NET配置->ASP.NET网站管理工具->安全->用户“活动用户”选项)
  4. FailedPasswordAttemptCount:连续登录失败的次数(用户名正确,密码无效),
    和web.config中设置的maxInvalidPasswordAttempts值相比较决定是否锁定用户成员资格帐户。

    FailedPasswordAttemptWindowStart:记录首次登录失败的时间。
  5. FailedPasswordAnswerAttemptCount:连续回答密码问题失败的次数。

    FailedPasswordAnswerAttemptWindowStart :记录首次失败的时间,
    和web.config中设置的passwordAttemptWindow值相比较决定是否锁定用户成员资格帐户。
下面再贴出web.config中有关用户成员资格的片段,
所有 以颜色Fuchsia标注的都是SqlMembershipProvider的属性。
<system.web>
  ...
  < machineKey
     validationKey="AutoGenerate,IsolateApps"
     decryptionKey="AutoGenerate,IsolateApps"
     validation="SHA1" 
  />
  ...
  <connectionStrings>
    <add name="SqlSrvConnectionString" connectionString="..."/>
  </connectionStrings>
  ...
  <membership defaultProvider="SqlSrvMembershipProvider"> 
    <providers>
      <add name="SqlSrvMembershipProvider"
        type="System.Web.Security.SqlMembershipProvider"
        connectionStringName="SqlSrvConnectionString"
        applicationName="WebShop" 
        commandTimeout="30"
        description="SqlSrvMembershipProvider"
         enablePasswordRetrieval="false"
         enablePasswordReset="true"
        requiresQuestionAndAnswer="true"
        requiresUniqueEmail="false"
         passwordFormat="Hashed"
         maxInvalidPasswordAttempts="5"
         passwordAttemptWindow="10"
         minRequiredPasswordLength="6"
         minRequiredNonalphanumericCharacters="0"
         passwordStrengthRegularExpression=""/>
   </providers>
  </membership>
  ...
</system.web>


角色表


用户与角色关联表

上面两个有关角色管理的表,更是一目了然。如果要多说几句的话,那就是通过
aspnet_UsersInRoles这个关联表把用户表和角色表之间的多对多关系转化为两个一对多的关系,
而这正是关系数据库所要求的。

特别注意,如果你要为你的用户添加角色管理,在web.config中必须显式启用( enabled="true"),
在默认情况下,用户角色是不启用。

web.config片段:
<system.web>
  ...
  <roleManager enabled="true">
    ...
  <roleManager/>
  ...
</system.web>

(3).ASPNETDB 表和视图(3) 个性化用户配置、页面个性化设置 表 和视图

个性化用户配置(用户自定义属性)表


由此表结构可以看出,所有的用户自定义属性最后都是“打包”(序列化)成一个或两个数据块,
存放在PropertyValuesString(序列化为string、Xml) 和(或) PropertyValuesBinary(序列化为Binary)
两个(或其中之一)字段中,因此要求用户自定义属性必须支持序列化。

序列化方式可由web.config中的 serializeAs指定,SqlProfileProvider默认序列化方式为String。

例如用户在web.config中配置了如下自定义属性,这里的 serializeAs="String" 仅仅为了表示
可以用户可以自行指定序列化方式,谢不写是一个样的:

<system.web>
  ...
  <connectionStrings>
    <add name="SqlSrvConnectionString" connectionString="..."/>
  </connectionStrings>
  ...
  <profile defaultProvider="SqlSrvProfileProvider">
     <providers>
       ...
         </providers>
    <properties>
         <add name="ThemeName" type="System.String"  serializeAs="String" />
         <group name="addPersonalInfo">
             <add name="FirstName" type="System.String"  serializeAs="String" />
             <add name="LastName" type="System.String" serializeAs="String"  />
            <add name="Birthday" type="System.DateTime" serializeAs="String" />
         </group>
      </properties>
  </profile>
  ...
</system.web> 

并运行了aspx页面中的以下C#代码:

this.Profile.ThemeName = "Blue";
this.Profile.PersonalInfo.FirstName = "John";
this.Profile.PersonalInfo.LastName = "Smith";
this.Profile.PersonalInfo.Birthday = new DateTime(1970, 11, 22);

然后打开数据库中的aspnet_Profile查看表,两个字段的内容分别为:
PropertyNames:        "PersonalInfo.FirstName:S:0:4:PersonalInfo.Birthday:S:4:81:PersonalInfo.LastName:S:85:5:ThemeName:S:90:4:"
PropertyValuesString:"John 1970-11-22T00:00:00SmithBlue"

注:以后在实现自定义用户配置提供程序(ProfileProvider) 一文中我会更详尽地讨论。


有关页面个性化设置的3个表

关系图


页面路径(地址)表


处于共享范围(Shared Scope)的页面个性化设置表


处于单用户范围(User Scope)的页面个性化设置表



视图
  1. aspnet_Applications表的全表视图。

    vw_aspnet_Applications
  2. aspnet_Membership表与aspnet_Users表的关联视图

    vw_aspnet_MembershipUsers
  3. 返回aspnet_Profiles表的用户ID、上次修改时间
    和属性名称串、字符串属性值、二进制属性值的总长度

    vw_aspnet_Profiles
  4. aspnet_Roles表的全表视图。

    vw_aspnet_Roles
  5. aspnet_Users表的全表视图。

    vw_aspnet_Users
  6. aspnet_UsersInRoles表的全表视图。

    vw_aspnet_UsersInRoles
  7. aspnet_Paths表的全表视图。

    vw_aspnet_WebPartState_Paths
  8. 返回aspnet_PersonalizationAllUsers表的页面路径ID、
    以二进制形式保存的页面配置属性的长度和上次修改时间。

    vw_aspnet_WebPartState_Shared
  9. 返回aspnet_WebPartState_User表的页面路径ID、用户ID、
    以二进制形式保存的页面配置属性的长度和上次修改时间。

    vw_aspnet_WebPartState_User

 

用ASP.NET在同一网页中显示主从关系表的相关数据 立即下载

相关推荐

datax关系/图数据库插件

datax关系/图数据库插件

graph 前端网络结构、关系图的插件

这两年在各大论坛和交流群,发现图可视化和图编辑器的需求越来越多,也踊跃出很多插件开发者的开源项目,譬如 Le5le-topology,就是一款由个人(小团队)领衔开发的产品化编辑器,之所以说是产品化,因为它集成了很多解决方案,可以说是开箱即用了。第二版是 jTopo 阶段,当时用了很短的时间实现了功能,不过由于官方文档缺失一些内容,以及对功能有一些额外的需求(比如节点上我想绑定对象类型的属性),对着混淆后的“源码”一路摸爬滚打,增删改查,很费心力。这三种插件都较好地实现了我需要的功能,但也有一些细微的坑。

qlin_11的博客 1909

S4-FPGA-K7板级原理图硬件实战

xilinx K7板级硬件实战

weixin_66510961的博客 6148

ASPNETDB 数据库关系图、表和视图 基本表和独立表(转载)

   ASPNETDB 这个隐藏在ASP.NET 2.0四大“插件”(SqlMembershipProvider、SqlRoleProvider、SqlProfileProvider、    SqlPersonalizationProvider)之后,时不时在你App_Data目录下幽灵般出现的SQL数据库,其实也并没什么神奇之处,我等凡夫俗子进去一看,原来也不过如此。不过如果我们要编写自定义Pr...

weixin_34126215的博客 199

第六节 旅烨cms实战练习 -2021.03.11

第六节 旅烨cms实战练习 -2021.03.11 前期使用win10里小皮搭建旅烨cms,以为自己的各项配置有问题,但是小皮能够正常带动DVWA,始终带动不了旅烨cms。 后来与其他安全人员交流,发现win7可以正常运行旅烨cms。 所以目前为何出现问题尚不清楚 1.环境搭建 win7+小皮 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nOSTEFUw-1615475228402)(C:\Users\LuXian\AppData\Roaming\Typora\typora

lyx3429的博客 571

达妙电机MIT模式调参实战:如何从‘曲线偏离’到‘完美追踪’正弦波?

本文详细解析了达妙电机MIT模式调参实战,从曲线偏离到完美追踪正弦波的方法论。通过MATLAB实时曲线分析,深入探讨位置环(kp)和速度环(kd)的双重调节技巧,帮助工程师优化参数组合,提升电机控制精度和稳定性。

weixin_29053073的博客 729

ASP.NET 2.0中MemberShip数据库的安装、配置及文档结构(一)

<br />ASP.NET 2.0 提供了许多十分有用的新特性,如MemberShip、RoleManager、Profile等等,可以很方便的在自己的应用程序中使用,解决登录认证、用户注册、权限管理、角色管理等问题。<br />    1 - AspNetDB数据库的安装。<br />        在Visual Studio 2005或者Visual Studio 2008 菜单中选择Tool->命令提示->运行ASPNET_RegSql.Exe文件,按照提示即可顺利安装成功。如下:<br /><br

super1021love的专栏 347

基于STM32避障/循迹/蓝牙遥控小车的硬件与软件底层设计

1、实现2m的自动直线行驶,要求左右偏移不大于10cm。2、车载显示屏显示车辆当前行驶速度或车辆运行时间,当前方20cm内出现障碍物时显示与前方障碍物的距离,车每次转弯蜂鸣器报警,同时通过左右指示灯指示转弯方向。3、依次驶过障碍物①②③④,且不触碰障碍物。4、成功进行调头转弯,行驶过程中车轮不碾压黑实线。5、在车道指定位置停车且不越界。6、通过红外、蓝牙、WiFi等任意一种方式实现对小车的控制,使其前进、后退、左转、右转。

2301_78758161的博客 1万+

ASP.NET 2.0使用user profile储存信息前,如何部署aspnetdb.mdf和正确建立连接

我在解决这个问题的时候走了不少弯路,现将方法总结给大家!希望不会有人想我一样,花了9个小时才弄好。无论是SQL SERVER 2005还是SQL SERVER  EXPRESS都可能遇到这个问题。前提:当我在项目的Web.Config文件中添加anonymousIdentification enabled="true"/>    profile enabled="true">     

kkjjww的专栏 982

YOLOv11改进 ,YOLOv11改进主干网络为MobileNetV3,助力涨点

MobileNetV3通过结合硬件感知网络架构搜索(NAS)和NetAdapt算法,通过新颖的架构改进进一步提升了性能。本文开始探讨了自动化搜索算法与网络设计如何协同工作,以利用互补方法来提升整体技术水平。通过这一过程,创建了两个新的MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,分别针对高资源和低资源使用场景。这些模型随后被适配并应用于目标检测和语义分割任务。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1932

Lammps纳米压痕接触面积—Matlab接触面积计算(两种方法)

Lammps纳米压痕接触面积计算

Rockyoung 5447

aspnetdb.mdb数据库介绍

说明:该博文非原创,摘自:优快云---&gt;http://blog.csdn.net/pwalai/archive/2008/05/10/2431273.aspx   asp.net 安全性验证中,觉得最用的上就是Form验证 而2.0自带了一个aspnetdb 提供用户验证、授权、访问控制,总结、摘抄了一些如下。 一aspnetdb数据库中表结构 表名:aspnet_Applic...

Jason 的专栏 463

C#上位机+YOLO实时目标检测:摄像头采集+多线程推理+精度调优全流程

标注数据集:使用LabelImg工具标注目标对象,按YOLO格式整理数据集;模型训练:使用Ultralytics库训练自定义模型,提升特定目标的检测精度;训练参数优化:增加训练轮数(epochs=100200)、调整批次大小(batch=1632)、使用数据增强(flip、mosaic等)。摄像头采集:封装通用采集类,支持USB摄像头/网口相机,实现稳定帧读取与异常处理;多线程推理:采用“采集线程+推理线程+UI线程”解耦架构,使用线程安全队列传递帧数据,彻底解决界面卡顿;核心封装。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 671

ASPNETDB 数据库关系图、表和视图(1) 基本表和独立表

揪出ASP.NET 2.0四大“插件”的总后台 -- ASPNETDB 数据库关系图、表和视图(1) 基本表和独立表 ASPNETDB 这个隐藏在ASP.NET 2.0四大“插件” ( SqlMembershipProvider、 SqlRoleProvider、 SqlProfileProvider、 SqlPerson...

dianmu2198的博客 248

基于FPGA的UDP 通信(六)

本文基于FPGA和MATLAB对千兆以太网通信模块UDP数据发送(FPGA发送)进行联合调试。

记录所学,分享知识,结识挚友 4728

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ASPNETDB 数据库关系图、表和视图 基本表和独立表

<br />ASPNETDB 这个隐藏在ASP.NET 2.0四大“插件”(SqlMembershipProvider、SqlRoleProvider、SqlProfileProvider、    SqlPersonalizationProvider)之后,时不时在你App_Data目录下幽灵般出现的SQL数据库,其实也并没什么神奇之处,我等凡夫俗子进去一看,原来也不过如此。不过如果我们要编写自定义Provider的话,还是得仔细研究一下下的,因为这4个Provider大部分的业务逻辑还是“封装”在这个数据

邴辉 1014

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ASPNETDB 数据库关系图、表和视图(1) 基本表和独立表(转载)

ASPNETDB 这个隐藏在ASP.NET 2.0四大“插件”(SqlMembershipProvider、SqlRoleProvider、SqlProfileProvider、 SqlPersonalizationProvider)之后,时不时在你App_Data目录下幽灵般出现的SQL数据库,其实也并没什么神奇之处,我等凡夫俗子进去一看,原来也不过如此。不过如果我们要编...

adlihgh692910的博客 197

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

揪出ASP.NET 2.0四大“插件”的总后台 -- ASPNETDB(转载)

这是我在园子里面找到的,文章分析的很仔细,很有帮助!ASP.NET 2.0“插件”说(转载)ASPNETDB 数据库关系图、表和视图(1) 基本表和独立表(转载)ASPNETDB 表和视图(2) 用户成员资格和角色管理表(转载)ASPNETDB 表和视图(3) 个性化用户配置、页面个性化设置表和视图(转载)ASPNETDB 存储过程(1) 基本及杂类(转载)ASPNETDB 存储...

adlihgh692910的博客 179

关于membership的一点资料

ASPNETDB 这个隐藏在ASP.NET 2.0四大“插件”(SqlMembershipProvider、SqlRoleProvider、SqlProfileProvider、    SqlPersonalizationProvider)之后,时不时在你App_Data目录下幽灵般出现的SQL数据库,其实也并没什么神奇之处,我等凡夫俗子进去一看,原来也不过如此。不过如果我们要编写自定

shizhong_taosheng的专栏 989
上一篇: MongoDB 管理
下一篇: 精妙SQL语句,基础,提升,技巧
CEJ-盐井
博客等级 码龄17年 10粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值