目前各类的权限设计已经困扰了我们好久,对于MVC,下面我将通过ActionFilter来扩展我们的权限认证,以下示例是从我的一个课程中心项目中提取出来,希望对各位初学者起到抛砖引玉的作用。

下面首先来设计我们的权限控制的数据库层。

下面我来依次介绍每个字段的说明

RoleGroup 权限组表  该表主要对系统权限进行分组,我们的用户可以直接赋予该分组,拥有所有该组权限

RoleID 权限组ID 例:01

RoleName 权限组名称  例:系统管理员

RoleState 组状态 (是否启用) 例:True

RoleGroupAppList 表 组权限对应表 该表主要复制每个权限组对应的权限详细列表

ID ID主键 例:1

RoleID 对应权限组的ID 例:01

SysAppID 对应的详细权限组ID 例:01

StartTime 该权限使用的起始日期 例:2009-01-01 ,该字段属性默认为:all ,即不限制起始日期

EndTime 该权限使用的结束日期 例:2009-01-01 ,该字段属性默认为:all ,即不限制结束日期

SysAppCate 表 该表主要是对SysAppList详细权限表做分类,当我们的权限页面特别多的时候,该表主要为了方便管理。可省略

SysAppCateID 大类ID 例:01

SysAppCateName 大类名称 例:新闻管理

SysAppCateEName 大类英文名

SysAppList 权限详细表 该表主要负责所有权限的基础列表

SysAppID 权限ID 例:01

SysAppCateID 权限大类ID 例:01

SysAppName 权限名称 例:新闻添加

SysAppEName 权限英文名称

SysAppController 权限对应的Controller 例:News

SysAppAction 权限对应的Action 例:Add 本权限设计针对对Action权限限制

IsView 是否为可见 例:True 该字段的设计主要是便于后台的管理和设置,因为有部分Action是没有View层的,比如Post,但是在后台权限管理中我们又要用到他。

好了,建库部分就到这里了,下一篇我会介绍逻辑部分,其中会涉及到Repository模式,缓存,自定义的AuthorizeAttribute。

转载于:https://www.cnblogs.com/cncode/archive/2010/03/24/1693736.html

Asp.net MVC权限设计思考 (一)数据库建库部分相关推荐

  1. asp.net MVC 权限设计

    几点说明: 1.该权限系统是个网站用的,用户简单,因此不涉及到部门这些信息 2.基于将角色与controller.action相关联来判断用户是否有权 3.通过重载AuthorizeAttribute ...

  2. asp.net MVC 权限设计(续)

    asp.net MVC 权限设计一文中没有demo放出来,应大家的要求,这里补充上文并放出demo. 几点说明: 1.基于将角色与controller.action相关联来判断用户是否有权 2.通过自 ...

  3. 自定义AuthorizeAttribute实现MVC权限设计

    文本为您介绍:自定义AuthorizeAttribute实现MVC权限设计,主要是通过将角色与controller.action等参数关联进行用户权限判断,然后通过自定义AuthorizeAttrib ...

  4. 关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 【持续更新】

    关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 [持续更新] 参考文章: (1)关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 [持续更新] (2)https://www. ...

  5. oracle建用户之前是否必须建表空间,Oracle数据库-建库、建表空间,建用户

    Oracle数据库-建库.建表空间,建用户 Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库. 对于初学者来说,为了避免麻烦,可以用'Database ...

  6. linux配置oracle11G监听及本地网络服务 及 数据库建库

    配置监听及本地网络服务 在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面. 数据库建库 在oracle用户的图形界面oracle用户中,新开启一个终端 ...

  7. 自然资源确权登记数据库建库

    自然资源确权登记数据库建库 依据<自然资源确权登记操作指南(试行)>,开展自然资源和生态空间的确权登记工作.针对确权登记成果建设数据库,利用python结合ArcGIS提供arcpy站点包 ...

  8. ASP.NET MVC CODE FIRST 图书管理系统 数据库

    ASP .NET MVC CODE FIRST 图书管理系统 本项目最后更新于2018-7-4,可能会因为没有更新而失效.如已失效或需要修正,请提issue! 我使用VS2017进行开发,框架是.NE ...

  9. 一台计算机有64,在同一台计算机上使用带有32位和64位Altium设计软件的数据库元件库...

    数据库元件库(DbLibs)是一种流行且强大的元器件管理解决方案.但是,将Microsoft Access用作元器件的后端数据库时,使用Altium设计软件的32位和64位版本之间有一个重要区别: 6 ...

最新文章

  1. python实现ldap接入
  2. Java如何连接openvas_gas: chinese Gui for openvAS(GAS)
  3. springboot快速集成swagger
  4. 遗传算法经典实例代码_经典算法研究系列 之 深入浅出遗传算法
  5. java 导入world数据_java读取world文件,把world文件中的内容,原样输出到页面上。...
  6. C语言成绩管理分析系统
  7. 电工模拟接线软件 app_电气接线方法以及线号管正确方向
  8. 【WinMTR】Windows上winmtr的安装使用方法
  9. 二阶无源低通滤波器幅频特性曲线_二阶无源滤波器.doc
  10. 计算机中if函数的使用方法,如何在Excel 中使用IF函数
  11. win10热点开启后,手机可以连上热点但无法连接网络
  12. nginx反向代理中proxy_set_header的含义
  13. MQTT 基础--遗嘱信息(Last will)和遗嘱标示(Testament):第 9 部分
  14. How to craw the Info of BiliBIli with python
  15. linux fstab错误无法启动,Linux 系统 fstab错误导致系统无法启动的修复
  16. ubuntu18 防火墙关闭_ubuntu18开启/关闭防火墙
  17. linux操作mysql数据库
  18. 最新消息!2022年全国大学生数学建模竞赛评阅要点发布
  19. 【算法竞赛进阶指南】CH5202 自然数拆分Lunatic版 完全背包
  20. OCTA数据集的交叉验证划分为训练集和测试机

热门文章

  1. 现在大家都使用支付宝和微信支付,为何银行还准备大量的现金?
  2. ubuntu下载goalng-1.9
  3. java jint_Android使用JNI实现Java与C之间传递数据
  4. 电脑解锁后黑屏有鼠标_电脑开机黑屏只有鼠标如何解决
  5. sql server 缓存_了解SQL Server查询计划缓存
  6. azure 使用_使用Azure Data Studio开始您的旅程
  7. azure云数据库_Microsoft Azure SQL数据库-分步创建教程
  8. azure云数据库_Azure SQL数据库中的漏洞评估和高级威胁防护
  9. dbcc_name 空的_DBCC INPUTBUFFER和sys.dm_exec_input_buffer DMF概述
  10. ASP.NET MVC4中的异步控制器