ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码) ---转

 

原文:http://www.cnblogs.com/hanyinglong/p/3236966.htmlhtml

  ASP.NET MVC+EF框架+EasyUI实现权限管系列数据库

  (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装   编程

      (5):前台Jquery easyUI实现   (6):EF上下文实例管理    (7):DBSession的封装   (8):DBSession线程内惟一   框架

      (9):TT摸版的学习    (10):VSS源代码管理    (11):验证码实现和底层修改  (12):实现用户异步登陆和T4模板   异步

      (13):权限设计  (14):主框架搭建   (15):权限数据库模型和用户登陆详细错误    (16):用户注册的各类验证 post

      (17):注册用户功能的细节处理   (18):过滤器的使用和批量删除数据(伪删除和直接删除) 学习

     (19):用户信息的修改和浏览   (20):多条件模糊查询和回收站还原的实现   (21):用户角色权限基本的实现说明网站

    (22):为用户设置角色   (23):设置角色遗留问题和EasyUI Tabs使用 spa

  前言:已经有很长的一段时间没有写博客了,主要是这段时 间生活有动荡了一下,因此一直没有顾得过来写,因此对那些关注我这个系列的博友们说声对不起,原本打算中途放弃的,由于后面的东西实在很差写,重点是说了 不少,可是博友们看不明白,在好几个类库以及控制器和实体之间转换致使了这样的结果,可是本身一想干一件事情咱们就必定要干完,因此我会坚持写完这个系列 的,这几天抽空出来,因此继续咱们权限系列的步伐,但愿你们可以支持我,谢谢,若是你们想去下载次项目练习版本的话,能够去百度搜索:《ASP.NET MVC+EF框架+EasyUI实现权限管理源码》下载学习,此版本只适用于学习,和如今写的项目的版本基本不同,但愿你们可以对比学习。.net

  那么今天咱们就开始讲述权限组的实现和设计吧。

1. 为何要有权限组

  (1)经过前面的博客咱们已经基本上完成了项目的用户,角色和权限的功能,那么咱们如今才出现了权限组,那么咱们的权限组是用来干什么的呢?这里我大体说一下,首先看如图所示的菜单导航:

    

  (2)如上图所示,咱们的菜单导航是静态写死在HTML中的,那么这样的话很不利于咱们项目的维护,当咱们须要添加一个菜单导航的话,咱们只有 去HTML中更改了,鉴于上面的需求,因此咱们须要将其变化成动态而且存放在数据库中,那么这时候咱们就建立了权限组的数据表来存放这些数据。

2.权限组和权限的关系描述

  (1)首先菜单导航应该跟用户关联到一块,这是为何呢?由于有的用户可能有后台权限管理,网站基本管理栏目,而有的用户可能没有网站基本管理 栏目,而超级管理员应该含有全部的栏目,那么这时候咱们就想咱们的菜单导航的栏目(指的是后台权限管理,网站基本管理,网站开发支持三个栏目分组)怎么跟 用户和权限去关联呢?由于菜单导航也是跟权限有关系的,那么这时候咱们就想咱们的菜单组(权限组)怎么去设计。

  (2)根据上面的描述咱们知道了咱们菜单导航中的分组以及子类都要去存放到数据库中,那么咱们怎么设计咱们的菜单导航跟权限联系到一块呢?

  (3)咱们知道咱们菜单导航(菜单组)里面的数据都对应的有权限,因此咱们就要想那么咱们的菜单组和菜单项怎么在模型中设计出来,当咱们用户登陆到系统的时候即可以直接拿到菜单组合菜单项的数据展现在菜单导航里面。

3.菜单项和菜单组的实现

  (1)可能这里我写菜单项和菜单组的话部分人会晕,我这里解释一下,菜单项就是菜单组下面的子节点,好比:菜单组是后台权限管理,而菜单项是后台权限管理下面的子节点。

  (2)这样的话咱们下来看咱们的这个权限的模型如图所示:

     

      

  由于咱们在BasePermission表中是对菜单的整体操做,可是咱们的菜单又分为菜单组和菜单项,因此这样的话咱们还须要给这个模型中添加一个标识,这个标识的做用就是区分究竟是菜单组仍是菜单项,用(1,0)标识便可

  (3)这样咱们就设计完了菜单项,那么下面咱们主要仍是讨论如何创建菜单项

4.菜单项的实现

  (1)那么根据咱们上述的描述的话,咱们在这里须要创建一个菜单项管理的数据库,因此咱们主要分析一下咱们该如何创建这个菜单项的数据库和这个数据库和其它的之间的关系。首先我直接上Edmx模型说明这个数据库和关系,如图所示:

    

  (2)这里我首先要陈述两点,那就是菜单组和菜单项是多对多的关系,从个人模型中能够看出了又一个中间表。

  (3)菜单组和用户确定也是有关系的,那么咱们也能够想到用户和菜单组确定也是多对多的关系。

  (4)那么菜单组和角色之间确定也是有关系,咱们能够想到也是多对多的关系,那么到这里咱们的关系就创建完毕了,整个菜单组关联了全部的项目

  (5)若是你们看这个的话我以为应该看得很模糊,那么我将数据库的建立的文档放在了CSDN上面,你们能够去下载:下载地址是: 

     http://download.csdn.net/detail/hanyinglong/5862727

5.菜单组最终完成

  (1)到这里咱们的数据库之类的就都已经创建完毕了,至于怎么创建的,我以为用过edmx模型的基本都知道,那么这个部分咱们就算是完成了,下面展现咱们这部分的内容,其实和前面的基本同样,如图所示:

  (2)那么下篇博客我说一下如何对这些前面所加入的验证的东西在项目登陆的时候验证用户是否是没有此权限呢。

  (3)本项目以前的源码下载地址以下:

    http://download.csdn.net/detail/hanyinglong/5868811

  (4)至于如何在他们的中间创建关系,你们去看个人上上篇博客是如何给他们创建关系的,咱们后续的几个关系我也就不说了,下篇博客可能要到下周才能写,我将些咱们如何判断用户登陆进来显示的内容。

   .NET开发者博客:www.kencery.com 备案中,可能不能访问

    Kencery返回本系列开篇

相关文章
相关标签/搜索