目前各类的权限设计已经困扰了我们好久,对于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. java判断地图范围_百度地图java 判断当前位置是否在多边形区域内
  2. python filter过滤器的使用_Python filter过滤器原理及实例应用
  3. q语言 科学计数_3岁宝宝说话结巴,被诊断语言障碍,我用1招让孩子口齿清晰,打脸众人!...
  4. C#实现对文件目录的实时监控
  5. c#获取Windows Mobile短信
  6. [Git] 多个分支修改相同文件
  7. .NET/C# 优化心得
  8. Java中系统属性Properties介绍 System.getProperty()参数大全
  9. excel柱状图自定x轴y轴_《excel柱状图自定x轴y轴》 如何更改EXCEL 图表中X轴的名称...
  10. 金笛邮件倒入专题之Umail倒入
  11. 完全用Linux工作
  12. windows无法完成安装若要在此计算机,windows无法完成安装.若要在此
  13. 武汉坚守第二十二天——谣言与辟谣与慌乱
  14. 女人血气不足很伤身体 做这5步立马解决
  15. 侯捷c++课程学习一
  16. 健身小程序开发的主要功能
  17. Freetype的基本应用
  18. C语言中“pow”函数,关于使用编译器编译时产生pow未定义引用。
  19. obj[key]和0bj.['key']
  20. java动态分配空间吗,当执行new为一个对象分配内存时,Java()A、自动初始化所分配的内存空间B、只分配内存,初始化要...

热门文章

  1. 俗话说开店容易,守店难,这句话是错的,百分之一万是错的,守店怎么会难?
  2. 为什么你说的话别人不愿意听?
  3. 什么样的人不适合互联网创业
  4. 程序控制的对象生命周期
  5. 选ac+ap还是mesh方案?
  6. Java - package和import
  7. 运行报错SecureCRT: error while loading shared libraries: libjpeg.so.8:
  8. linux下使用fread读socket套接字的注意点
  9. @sql 单元测试_10个最常见SQL单元测试错误
  10. sql查询初学者指南_面向初学者SQL Server查询执行计划–类型和选项