zoukankan      html  css  js  c++  java
  • asp.net 2.0中,用户管理相关表的概述

    先看看各个表之间的关系图:







    下面每一个表的作用进行描述(引用自:asp.net 2.0 用户管理功能结构):

    用户管理的三个组件是相互关联的,而且在数据设计上也是做了非常严格的数据约束。一个数据库可以存放多个系统的用户,以便用户的统一管理,每个用户都有一个ApplicationId字段来标识它是属于哪个系统的用户。

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

    aspnet_Users :用户表,但是它只保存了用户ID基本不会变的信息,并且会有一个Uniqueidentifier类型的字段UserId来作为每个用户的唯一标识(并且是主键),以方便与其它表的关联。值得注意的是还有一个ApplicationId字段,通过这个字段与aspnet_Application进行关联,以此来将区分用户是属于哪个系统的。由于UserName字段本身并不是主键,所以它是可以有重复值的,但不是说一个系统允许存在相同的用户名。正是ApplicationId字段来标识相同的用户名是属于不同的系统的。ApplicationId字段的作用就在于此,所以你可以看到很多表中都有这个字段的存在。

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

    aspnet_Membership :保存着用户的一些可变(不可变)的基本信息。在aspnet_Membership表存储着一些用户的公共属性信息。根本不同的需求的,我们可能还需要其它的一些自定义字段,在这种情况下最好不要直接修改这个表,而是应该新建一个表,或利用Profile功能来实现。 aspnet_Profile :存储着用户的一些个性化信息。由于个性化信息的字段是可变的,所以它采用了一种比较灵活的存储方式,类似于:property1:value1;property2:value2的形式(具体分隔符可能有误)来存储多个可变的属性值。再通过解析,分解出正确属性和值。

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

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

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

    另外两个表与用户管理没有直接关系的:aspnet_WebEvent_Events,用于记录系统在运行过程中去现的一些异常信息,需配合Health monitor使用;aspnet_SchemaVersions用于记录当前的框架版本信息,默认已经有记录了。



    另外,需要说明的是:管理访问规则

    管理访问规则中定义的【角色】与【程序目录】之间的访问规则,是在web.config文件中定义的,如:
    <system.web>
       <authorization>
             <allow roles="测试" />
             <deny users="?" />
             <allow roles="程序员" />
             <allow roles="产品经理" />
        </authorization>
       ...
    <system.web>

  • 相关阅读:
    LeetCode 258 Add Digits
    LeetCode 231 Power of Two
    LeetCode 28 Implement strStr()
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 21 Merge Two Sorted Lists
    LeetCode 20 Valid Parentheses
    图形处理函数库 ImageTTFBBox
    php一些函数
    func_get_arg(),func_get_args()和func_num_args()的用法
    人生不是故事,人生是世故,摸爬滚打才不会辜负功名尘土
  • 原文地址:https://www.cnblogs.com/scdsun/p/572623.html
Copyright © 2011-2022 走看看