asp.net 一个简易权限的小例子设计

asp.net 一个简易权限的小例子设计
近日在阅读一本asp.net的书时(国人写的),其中提到了一个简易权限的小例子,感觉说的还是比较清楚,有点代表性,
故在此简单介绍下其实现原理
   其核心是建立起用户、角色,功能,模块功能四者的关系。数据库设计如下

1 用户角色表

  User表
   字段:userid  自递增字段

            username
           password

  RoleTable表(角色表)
  字段
        Roleid  自递增字段

        RoleName
 
 用户角色表  UserRole
 字段
   UserRoleid(自递增字段)
   userid
   roleid

     用户表和角色表通过用户角色表进行关联,用户和角色之间的关系是多对多

2  角色权限表RoleRight
    字段  
     RoleRightId  自递增字段
     RoleId  
     ModuleFunctionId

   这里解析一下,比如用户tom,具有管理员的角色(假设在roletable表中,存在如下一条记录
    Roleid    RoleName
    2              admin
   
   
那么在RoleRight表中,存在如下形式的记录
     RoleRightId      RoleId       ModuleFunctionId
        1                       2             10
        2                       2              11

     即说明,roleid=2的管理员角色,具有moduleidfunctionid=10和11的权限


    接着往下看

3  Module表(模块表)
    字段
   moduleid     modulename     url
    1               学生档案       xxxxx
   2                教师档案      xxxxxxx

4   ModuleFunction表(模块-功能表)
 
       字段
    modulefunctionid           moduleid       functionid
      .....................
      10                                   1                 1
      11                                   1                  2


 5   function表(功能表)
    字段
    functionid       functioname
      1                   add
      2                    update
      3                   delete
      4                   search

    可以看到,刚才管理员角色拥有的10,11两个权限,可以在modulefunction表中找到,即在moduleid=1(学生档案)这个模块中拥有两类
可以执行的功能,是什么功能呢?查看functionid可以知道,有add和update的功能了



      这样的好处是,“模块”,“功能”,“组”,“人”可以任意添加,彼此不受影响。既可以直接为每个用户直接赋予权限,也可以为一类用户归到角色,再在角色里统一给权限。
     但实际上,一般没多大必要设立function表去放这些权限,来来去去都是CRUD这些


       
  
 
posted on 2007-05-12 11:13 jackyrong的世界 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/jackyrong/archive/2007/05/12/743741.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 内核与用户空间通信之netlink使用方法

Linux中的进程间通信机制源自于Unix平台上的进程通信机制。Unix的两大分支AT&T Unix和BSD Unix在进程通信实现机制上的各有所不同,前者形成了运行在单个计算机上的System V IPC,后者则实现了基于socket的进程间通信机制。同时Linux也遵循IEEE制定的P…

C++学习之路 | PTA乙级—— 1020 月饼 (25分)(带注释)(精简)

1024 科学计数法 (20分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [][1-9].[0-9]E[][0-9],即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确…

超级智能城市:更高质量的幸福社会

报告下载链接:https://pan.baidu.com/s/1oAmRK4U 密码:t9qb未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。由互联网进化论作者,计算机博士刘锋与中国科学院虚拟经济与数据科学研究中心石勇、刘颖教授创建…

切洋葱怎么才不流泪?

切洋葱时,由于洋葱有一种挥发物质,常使切菜的人流泪。防止的方法是: 1.在切洋葱前,把切菜刀在冷水中浸一会儿,再切时就不会因受挥发物质刺激而流泪了。 2.将洋葱对半切开后,先泡一下凉水再切,就不会流泪了. 3.放微波炉…

python网络编程——IO多路复用之epoll

来源:http://www.cnblogs.com/maociping/p/5132583.html 1、内核EPOLL模型讲解 此部分参考http://blog.csdn.net/mango_song/article/details/42643971博文并整理 首先我们来定义流的概念,一个流可以是文件,socket,pipe等可以进行…

高精度定位!“天地一体”基础设施助中国北斗在商用领域“弯道超车”

来源:上观概要:从2007年第一颗北斗导航卫星成功发射,到2018年2月12日第二十八、二十九颗卫星顺利升空进入预定轨道,北斗导航卫星系统的产业化步伐也日益加快。从2007年第一颗北斗导航卫星成功发射,到2018年2月12日第二…

DotNet 网上相关资源

相关网站列表 http://blog.joycode.com/ 博客堂 主要是微软专家的帖子,内容较新 http://www.cnblogs.com/ 博客园 http://www.microsoft.com/resources/practices/default.mspx 模式和实践首页 http://msdn.microsoft.com/smartclient/ 智能客户端首页 http://msdn…

2018全球技术展望报告

来源:199IT互联网数据中心概要:随着人工智能(AI)和其他技术的飞速发展,智能企业层出不穷,并正融入人们的生活。埃森哲(纽交所代码:ACN)最新发布的《埃森哲技术展望2018》…

Python异步非阻塞IO多路复用Select/Poll/Epoll使用

来源:http://www.haiyun.me/archives/1056.html 有许多封装好的异步非阻塞IO多路复用框架,底层在linux基于最新的epoll实现,为了更好的使用,了解其底层原理还是有必要的。 下面记录下分别基于Select/Poll/Epoll的echo server实现。…

沉下来,沉下来,别让自己太浮躁

沉下来,沉下来,别让自己太浮躁路虽远,行则将至事虽难,做则必成 转载于:https://www.cnblogs.com/ttyttt/archive/2007/06/04/771071.html

Abstract Server、Adapter 和 Bridge 模式

Abstract Server、Adapter 和 Bridge 模式

Loguru:Python 日志终极解决方案

From:https://blog.csdn.net/kdl_csdn/article/details/121146354 1、日志的重要性 日志的作用非常重要,日志可以记录用户的操作、程序的异常,还可以为数据分析提供依据,日志的存在意义就是为了能够在程序在运行过程中记录错误&am…

全球机器换人排行榜!这八个国家遥遥领先

来源: 机器人创新生态概要:如今,世界各国都在进行机器换人,希望把人力劳动从低端工作岗位释放出来,制造业自动化水平越来越高,工厂利用工业机器人获得了更低的成本、更高的效率和更快的生产速度。人力成本的…

不是人问的

我居然问了一个不是人问的问题。。。。。。看来我太有问题了。。。。。。 转载于:https://www.cnblogs.com/iceice1986/archive/2007/06/12/780814.html

C++学习之路 | PTA(甲级)—— 1043 Is It a Binary Search Tree (25分)(带注释)(精简)

1043 Is It a Binary Search Tree (25分) A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes with keys less than the node’s key. The right subtree of a node co…

Proxy 和 Stairway To Heaven 模式

Proxy 和 Stairway To Heaven 模式

C++学习之路 | PTA(甲级)—— 1064 Complete Binary Search Tree (30分)(带注释)(精简)

1064 Complete Binary Search Tree (30分) A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes with keys less than the node’s key. The right subtree of a node c…