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这些
转载于:https://www.cnblogs.com/jackyrong/archive/2007/05/12/743741.html
asp.net 一个简易权限的小例子设计相关推荐
- java notify视频_一个很好的小例子来演示java中的wait()和notify()方法
任何人都可以在 java中为我提供一个很好的小例子演示wait()和notify()功能.我尝试使用下面的代码,但它没有显示我的预期. public class WaitDemo { int i = ...
- 一个新闻列表的小例子
最近想系统的学习一下web前端开发,看了很多资料,因为本人不是前端的开发人员,心里不知道玩啥,从哪里开始,觉得无聊,就从模仿开始吧! 来看一个今天我的小例子吧! 我觉得我这个例子有几点重要的: 1.超 ...
- 在开发环境中,自己搭建一个ssl环境(小例子)
做项目的时候自己总结的一些小例子 public class Test { public static void setSSLProperty() { Security.addProvider(new ...
- 用Asp.Net c#写的采集小例子
前台页面: <%@ Page language="c#" Codebehind="Gethttpcode.aspx.cs" AutoEventWireup ...
- 一个简单的定时任务小例子
[强制]线程资源必须通过线程池提供,不允许在应用中自行显式创建线程. 说明:使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统资源的开销,解决资 源不足的问题.如果不使用线程池,有可能造成系统 ...
- 用java的二维数组做一个简易计算优惠小程序(附带源码)
要求: 1.单点: 溜肥肠24元 酱肘子32 米饭3元 2.订单满30打八折 3.优惠价: 溜肥肠18元 4.打八折与优惠价不能同时使用,点这三样,最少多少钱? 思路: 首先定义一个 String 类 ...
- 【HTML+CSS】做一个简易的立体小模型
学完css基础的朋友们赶紧给自己做个小玩具"奖励"一下自己吧 学习的过程中一定要记得多奖励自己 废话不多说直接撸代码 <!DOCTYPE html> <html& ...
- 开发一个简易的俄罗斯方块小游戏
完整代码如下: import pygame import random import sys# 游戏设置 WINDOW_WIDTH = 400 WINDOW_HEIGHT = 500 GRID_WID ...
- 一个简易的弹球小游戏
操作说明:键盘A和D键控制左右移动,让球不要落下. #include <graphics.h> #include <conio.h> #include <time.h&g ...
最新文章
- jQuery 文件上传插件:uploadify、swfupload
- python 链表 【测试题】
- python 柱状图 间距_专题第18篇:Python 绘图入门
- iOS 10 的一个重要更新-自定义的通知界面
- arcgis判断两个字段是否相等
- cesium等高线_Cesium开源三维地球离线地图发布源码示例功能
- 表格存储 SQL 查询多元索引
- python中国官网-中蟒 (中文 Python) 編程語言網站 chinesepython
- xmlhttp上传文件(转贴)
- linux中使用bochs调试helloword引导程序
- repeater 的编辑功能
- 竞赛成绩管理系统用c语言编写,学生成绩管理系统代码(c语言编写).doc
- 制造业升级智造业,阿里云提炼了9大场景
- 计算机教案 认识键盘,《认识电脑键盘》教案
- 删掉启动分区进不了系统,复活办法(win10)
- Qt 并行运算高级API QtConcurrent
- 微前端系列讲解--应用集成方案(qiankun+umi+vue)
- Golang iota详解
- 通过百度API实现图片车牌号识别
- 华南x79 主板说明书下载_主板说明书找不到 机箱连线照样秒安装
热门文章
- LeetCode 1826. 有缺陷的传感器(枚举)
- LintCode 1915. 举重(01背包)
- LeetCode 987. 二叉树的垂序遍历(递归/循环)
- 程序员面试金典 - 面试题 16.02. 单词频率(哈希表/Trie树)
- LeetCode 1340. 跳跃游戏 V(DP)
- 计算尖峰电流的目的_入门必看!负荷计算的目的、方法以及原则详解
- python设置单元格宽度_Python xlwt-访问现有单元格内容,自动调整列宽
- jqprintsetup已经安装还会提示_Windows 10更新将修复困扰用户已久的循环安装问题...
- 详解nohup和 区别
- 美团DB数据同步到数据仓库的架构与实践