(转)ASP.NET MVC4+EasyUI+EntityFrameWork权限管理系统——数据库的设计(一)
原文地址:http://www.cnblogs.com/cmsdn/p/3371576.html
快一年没写博客了,这段时间感觉好迷茫,写点博客,记录一下自己的成长过程,希望对大家也有帮助
先上图

一个用户可以有多个角色,一个用户可以属于多个部门,这些都可以控制到权限,有时特殊要求,同样的部门和角色不一定有同样的权限(虽然可以定义多个角色来实现,但是如果这种情况多了就有点麻烦了),所以还弄了个基于用户的权限,这样就可以很灵活的控制了。
每个模块的包含那些可控制的权限,用一个int类型字段控制,下边用一个枚举位标示出了系统所有的可能的权限(根据实际情况)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
using System;namespace Mydream.Permission.Common{ [Flags] public enum Authority : int { /// <summary> /// 浏览权限 /// </summary> Index = 1, /// <summary> /// 添加权限 /// </summary> Add = 2, /// <summary> /// 编辑权限 /// </summary> Edit = 4, /// <summary> /// 删除权限 /// </summary> Delete = 8, /// <summary> /// 搜索权限 /// </summary> Search = 16, /// <summary> /// 审核权限 /// </summary> Verify = 32, /// <summary> /// 移动权限 /// </summary> Move = 64, /// <summary> /// 打印权限 /// </summary> Print = 128, /// <summary> /// 下载权限 /// </summary> Download = 256, /// <summary> /// 备份权限 /// </summary> Backup = 512, /// <summary> /// 授权权限 /// </summary> Grant = 1024, /// <summary> /// 查看详细权限 /// </summary> View = 2048, /// <summary> /// 导出权限 /// </summary> Export = 4096 }} |
这些枚举值全部用的2的次幂,之所有这样赋值,是为了用2进制来控制权限
比如某个模块(模块A)有浏览、添加、编辑、删除、打印的权限,那么这个模块的int值=Index|Add|Edit|Delete|Print
00000001(Index=2^0=1)
00000010 (Add=2^1=2)
00000011 3
00000100(Edit=2^2=4)
00000111 7
00001000(Delete=2^3=8)
00001111 15
1000000 (Print=2^7=128)
10001111 143
最后的值其实就是1+2+4+8+128=143 所以这个模块对应的权重就是143(这个只是说明这个模块包含哪些功能)
如果一用户属于角色A,角色A包含模块A中的浏览和添加权限(1+4=5),那么这个角色A 就对应了 (角色A的ID 模块A的ID 权重=5)
我们的Action的命名按照枚举那样命名,然后每次操作的时候用这个权限INT值,然后if(INT值&Action命名的枚举==Action命名的枚举)如果为True说明有执行这个Action的权限
由于权限管理系统还在业余学习研究中,很多还没有实现,上面主要讲解了数据库的设计,后边的实现会慢慢呈现,最近都很忙,也没怎么写这个业余学习的例子了,后续有更新会慢慢放上来,写得不好请包涵,如有好的意见请赐教,谢谢!
(转)ASP.NET MVC4+EasyUI+EntityFrameWork权限管理系统——数据库的设计(一)的更多相关文章
- ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——数据库的设计(一)
快一年没写博客了,这段时间感觉好迷茫,写点博客,记录一下自己的成长过程,希望对大家也有帮助 先上图 一个用户可以有多个角色,一个用户可以属于多个部门,这些都可以控制到权限,有时特殊要求,同样的部门和角 ...
- ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——菜单模块的实现(二)
ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——数据库的设计(一) 菜单和模块是在同一个表中,采用的是树形结构,模块菜单表结构如下代码: USE [Permis ...
- Oracle+FluentData+MVC4+EasyUI开发权限管理系统之开篇
在园子里有很多EF+MVC+EasyUI的框架实在是太多了,经过在一段时间的学习高手写的思路,但是都是针对Sql数据的,但是今年我当上研发组组长的第一个任务就是编写一个通用平台框架,一刚开始想把学习过 ...
- asp.net mvc +easyui 实现权限管理(二)
一写完后,好久没有继续写了.最近公司又在重新开发权限系统了,但是由于我人微言轻,无法阻止他们设计一个太监版的权限系统.想想确实是官大一级压死人啊, 没办法我只好不参与了 让他们去折腾. 我就大概说一下 ...
- asp.net core 身份认证/权限管理系统简介及简单案例
如今的网站大多数都离不开账号注册及用户管理,而这些功能就是通常说的身份验证.这些常见功能微软都为我们做了封装,我们只要利用.net core提供的一些工具就可以很方便的搭建适用于大部分应用的权限管理系 ...
- ASP.NET MVC 通用角色权限管理系统
RightControl 介绍 .NET 通用后台角色权限管理系统,已完成.项目地址:http://106.14.77.184/Admin/Login 码云地址:https://gitee.com/L ...
- Asp.net MVC + AngularJS 统一权限管理系统(一)
背景: 之前公司内部做了不少系统,但是权限管理都是分开的:一直都想能够有一套统一管理的权限管理系统:有的时间都是一直在计划,随着时间的流逝,计划始终没有实现,也随着项目的增多而这权限管理也变得版本多样 ...
- [置顶] EASYUI+MVC4+VS2010通用权限管理系统开发
通用权限案例平台在经过几年的实际项目使用,并取得了不错的用户好评.在平台开发完成后,特抽空总结一下平台知识,请各位在以后的时间里,关注博客的更新. 1.EASYUI+MVC4通用权限管理平台--前言 ...
- 快速开发之代码生成器(asp.net mvc4 + easyui + knockoutjs)
一.前言 作为一个码农这么多年,一直在想怎么提高我们的编码效率,关于如何提高编码效率,我自己的几点体会 1.清晰的项目结构,要编写代码的地方集中 2.实现相同功能的代码量少并且清晰易懂 3.重复或有规 ...
随机推荐
- Eclipse自动生成 get/set
步骤一:在声明的数据域中按Ctrl+1: 步骤二:点击最后一个选项Create getter and setter,在弹出的对话框中点击确定: 在介绍另外一个方法: 步骤一:声明完类的数据域之后,输入 ...
- 2、Flume1.7.0入门:安装、部署、及flume的案例
一.什么是Flume? flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用. flume的特点: flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的 ...
- java.控制次数,每一组数都要计算。所以有个嵌套
总结:数组内的数据要循环,外面的次数也要循环 package com.aini; import java.util.Scanner; //要求可以控制输入的次数,比如4次.则输入5个数,5组输出结果 ...
- java代码求输入的三个数的最大值
package com.c2; import java.util.Random; import java.util.Scanner; //输入10个数,找出最大一个数,并打印出来. public cl ...
- Java调用Groovy
记录一下 http://docs.groovy-lang.org/latest/html/documentation/guide-integrating.html
- python开发面向对象基础:组合&继承
一,组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 人类装备了武器类就是组合 1.圆环,将圆类实例后传给圆环类 #!/usr/bin/env python #_*_ ...
- C++获取Lua全局变量和执行Lua多参数多返回值函数
C++代码: // LuaAndC.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #i ...
- nios 使用count binary 例程 只是led不闪
系统id有问题的总结: 1, 复位是否正确.(特别使用拨码开关的) 2, 硬件连接是否有问题.(SDRAM的时序约束可以有,也可以没有) 3, 引脚分配是否正确.(SDRAM的dqm就错过一次) 4, ...
- Py修行路 python基础 (十)装饰器
装饰器 一.定义 装饰器:顾名思义,就是对某个东西起到装饰修饰的功能. python中的装饰器,其本质上就是一个python函数,它可以让其他函数在不需要任何代码变动的前提下增加额外功能.通俗理解就是 ...
- Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类
一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...