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

asp.net 一个简易权限的小例子设计相关推荐

  1. java notify视频_一个很好的小例子来演示java中的wait()和notify()方法

    任何人都可以在 java中为我提供一个很好的小例子演示wait()和notify()功能.我尝试使用下面的代码,但它没有显示我的预期. public class WaitDemo { int i = ...

  2. 一个新闻列表的小例子

    最近想系统的学习一下web前端开发,看了很多资料,因为本人不是前端的开发人员,心里不知道玩啥,从哪里开始,觉得无聊,就从模仿开始吧! 来看一个今天我的小例子吧! 我觉得我这个例子有几点重要的: 1.超 ...

  3. 在开发环境中,自己搭建一个ssl环境(小例子)

    做项目的时候自己总结的一些小例子 public class Test { public static void setSSLProperty() { Security.addProvider(new  ...

  4. 用Asp.Net c#写的采集小例子

    前台页面: <%@ Page language="c#" Codebehind="Gethttpcode.aspx.cs" AutoEventWireup ...

  5. 一个简单的定时任务小例子

    [强制]线程资源必须通过线程池提供,不允许在应用中自行显式创建线程. 说明:使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统资源的开销,解决资 源不足的问题.如果不使用线程池,有可能造成系统 ...

  6. 用java的二维数组做一个简易计算优惠小程序(附带源码)

    要求: 1.单点: 溜肥肠24元 酱肘子32 米饭3元 2.订单满30打八折 3.优惠价: 溜肥肠18元 4.打八折与优惠价不能同时使用,点这三样,最少多少钱? 思路: 首先定义一个 String 类 ...

  7. 【HTML+CSS】做一个简易的立体小模型

    学完css基础的朋友们赶紧给自己做个小玩具"奖励"一下自己吧 学习的过程中一定要记得多奖励自己 废话不多说直接撸代码 <!DOCTYPE html> <html& ...

  8. 开发一个简易的俄罗斯方块小游戏

    完整代码如下: import pygame import random import sys# 游戏设置 WINDOW_WIDTH = 400 WINDOW_HEIGHT = 500 GRID_WID ...

  9. 一个简易的弹球小游戏

    操作说明:键盘A和D键控制左右移动,让球不要落下. #include <graphics.h> #include <conio.h> #include <time.h&g ...

最新文章

  1. jQuery 文件上传插件:uploadify、swfupload
  2. python 链表 【测试题】
  3. python 柱状图 间距_专题第18篇:Python 绘图入门
  4. iOS 10 的一个重要更新-自定义的通知界面
  5. arcgis判断两个字段是否相等
  6. cesium等高线_Cesium开源三维地球离线地图发布源码示例功能
  7. 表格存储 SQL 查询多元索引
  8. python中国官网-中蟒 (中文 Python) 編程語言網站 chinesepython
  9. xmlhttp上传文件(转贴)
  10. linux中使用bochs调试helloword引导程序
  11. repeater 的编辑功能
  12. 竞赛成绩管理系统用c语言编写,学生成绩管理系统代码(c语言编写).doc
  13. 制造业升级智造业,阿里云提炼了9大场景
  14. 计算机教案 认识键盘,《认识电脑键盘》教案
  15. 删掉启动分区进不了系统,复活办法(win10)
  16. Qt 并行运算高级API QtConcurrent
  17. 微前端系列讲解--应用集成方案(qiankun+umi+vue)
  18. Golang iota详解
  19. 通过百度API实现图片车牌号识别
  20. 华南x79 主板说明书下载_主板说明书找不到 机箱连线照样秒安装

热门文章

  1. LeetCode 1826. 有缺陷的传感器(枚举)
  2. LintCode 1915. 举重(01背包)
  3. LeetCode 987. 二叉树的垂序遍历(递归/循环)
  4. 程序员面试金典 - 面试题 16.02. 单词频率(哈希表/Trie树)
  5. LeetCode 1340. 跳跃游戏 V(DP)
  6. 计算尖峰电流的目的_入门必看!负荷计算的目的、方法以及原则详解
  7. python设置单元格宽度_Python xlwt-访问现有单元格内容,自动调整列宽
  8. jqprintsetup已经安装还会提示_Windows 10更新将修复困扰用户已久的循环安装问题...
  9. 详解nohup和 区别
  10. 美团DB数据同步到数据仓库的架构与实践