专栏首页更流畅、简洁的软件开发方式【自然框架】之通用权限的Demo(一):角色的添加和修改

【自然框架】之通用权限的Demo(一):角色的添加和修改

      非常抱歉,我是一个靠激情来工作的人,有心情做什么多快,没心情的时候什么都不爱做。最近很烦,所以速度也很慢。原本打算周一拿出来Demo的,结果延迟了现在。希望大家多多包含。这个Demo并不完整,目前权限方面只实现了角色的添加和修改,其他的还没有实现。我还是一点一点来吧,我是怕如果我等到Demo更完善才拿出来的话,我会承受不了,而放弃这个计划。所以,咬咬牙,一步一步来。后续功能的Demo也会尽快拿出来,一两天吧。

一、 环境       Vs2008、.net Framework 2.0、asp.net(c#)、SQL Server 2000 。抱歉,没有VS2005的Demo

二、 项目结构       1、配置信息管理程序和权限的管理

            这里就是自然框架里的配置信息的管理程序,我就是通过这个程序来管理配置信息,也可以通过这个程序来完成项目中的基本功能(比如增删改查)。当然这个还没有完全做好。             权限管理只是自然框架的一个部分。

      2、登陆人员信息管理

            这是一个独立的项目,这个项目比较简单,就是要实现用户的登录、登出、保存登陆状态、保存用户的常用信息。为什么要单独设置一个项目呢,原因很简单,这一块基本可以独立出来,就是说当第一个项目做好之后,再写第二个项目的时候,只需要引用这个dll文件就可以了。不用在重新写一遍(或者copy)用户登录方面的代码了。

      3、通用类库(包括自定义控件)             这个指的是数据访问函数库、常用函数库、自定义控件等。

三、 UI里的基类

            我是比较懒的,所以我在UI里面也设置了基类,就是说把公用的代码放在了基类里面,这样就可以省去写很多的重复代码的烦恼了。

四、 角色管理       写了这么多和角色无关的,不知道大家烦了没有。可能有一些人的方式是先设计好了角色,然后给客户使用。可能在设计项目的时候就把角色设计好了,或者在编码之前,或者在交给用户测试(使用)之前就设计好了角色。而我呢,我的项目的角色,完全有客户自己设置。做设计、写代码的时候根本就不用考虑权限的问题。所以我觉得应该先演示一下角色是如何来由客户维护的。       这里主要说的就是角色的添加、修改。而且粒度也比较粗,只演示了权限到节点、权限到按钮,并没有加入权限到字段、资源过滤和“拒绝”的功能。我想还是一步一步的来,因为是要通用,所以要考虑到很多的情况,有简单的需求(粗粒度),也有复杂的需求(细粒度、资源过滤、权限到字段等)。所以我想还是“步步为营”的好。另外这几天心情很乱,而我又是一个感情用事的人,心情不好,速度就很慢了,望大家谅解。

(“节点”后面的那个文本框不用输入信息。上面的那个三行的table,就是表单控件自动生成的。节点是可以展开和收拢的)

五、感谢liyf 把我写的这几章的内容整理成了word文档,而且加上了修饰。说起来很惭愧,我是先在word里面编写、画图。只是比较懒,word里面并没有做任何的修饰,而是在写博文的时候才在“在线编辑”里面做一些修饰。所以我想我还是把word原稿也提供下载吧。呵呵。金色海洋通用权限.rar

六、 后续的功能也会继续完善的,写好一块就发出来一块。大家不会嫌我墨迹吧。

七、 注意事项  修改连接字符串,打开web.config,修改“ConnectionString”后面的内容  Demo需要的Dll都在bin文件夹下面,如果提示没有找到dll文件,请修改引用路径,或者重新引用。  数据库说明文档使用Excel 2007,所以如果您没有安装office 2007的话,可能在打开“数据文档、建表”的时候发生错误,不过这个不影响角色的演示,所以暂时先不修改了。以后会改成连接Excel 2003 的方式。  使用的时候,需要输入用户名和密码,管理员的用户名:admin,密码:123

八、  FAQ       1、 这么多的框框要选择,如果我要是给总裁做角色,而总裁什么都能做,那我岂不是要累死?             这个我也想到了,我采用了“联动”的方式,就是说如果您在一级节点的框框里打上了对号,那么他的所有子节点、子子节点,和对应的按钮的框框都会被打上对号。如果你去掉了一级节点的对号,那么子节点和按钮的对号也会跟着去掉的。

      选择二级、三级、n级节点都是一样的原理。而且同时会把上一级的节点的框框也打上对号。没有上一级,哪来的这一级呀。

      2、 吉日嘎拉的“权限表”和Role_RoleButton表是什么关系?             我的理解:不一定正确哦。             Role_RoleButton = 一少半的吉日嘎拉的“权限表”。             或者Role_RoleButton + Role_RoleResource + Role_ResourceControlCase = 一多半的吉日嘎拉的“权限表”。             我为什么分了这么多的表而不用一个表呢?一是表里的记录会很多,合成一个表记录会更多,要考虑一些效率的问题。二是单一职责,一个表就是记录一个方面的事情,合与不合要从多个角度去考虑,应该没有定论,也不应该说我分开成多个表了就是瞎搞吧。

      3、 这个Demo怎么这么别扭呢?             我没有按照三层的方式来写,也没有按照MVC的方式来写,也没有使用实体类(不知道人员管理的那个算不算)。所以您可能看着很别扭。其实这个就是我写项目的方式。             请不要按照三层等标准来检查这个Demo,否则的话,您找到的问题,如果用A4纸打印出来的话,可能会有一厘米厚。             Demo的很多地方都没有完善,甚至没有实现其功能。

九、Demo和数据库的下载:通用权限相关文档的下载【2009.6.15更新】

============================================

ps:

这里不欢迎吉日嘎拉!他的回复,无论什么内容,一律删除。原因如下: 1、 他喜欢pk,喜欢给自己找个对手,练习他的pk水平,他的心里素质很好。但是我不喜欢pk,我心里素质很差,所以希望他能放过我。如果还来的话,那我就只好删回复了。 2、 他的回复对于我来说没有任何意义和帮助。这个不是谁高谁低的问题,而是他的回复很泛泛、很空洞。从来不说细节,从来不给出一个具体的帮助,没有一个细节说明。好像他在做广告,说他如何如何厉害,但是要我给他交学费,然后才能告诉我。对不起,我很穷,交不起学费。

3、 他一出现,就会引出来其他的人对他的攻击。因为在他的帖子里,对他不利的帖子都被他给删除了,所以有些人借此机会就到我这里来了。要吵出去吵,别在这里烦我,谢谢。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • node的第一步,hello,以及小技巧和CPU使用情况。到底能用几个核心?

    打开记事本,写这么一行,然后保存关闭(文件名hello),再把扩展名(.txt)改成.js。代码就写好了。

    用户1174620
  • 零代码第一步,做个添加数据的服务先。node.js + mysql

    1、 数据库设计、建表这类的直接略过,假设有了一张表,我们要往这个表里面添加数据

    用户1174620
  • 【自然框架】之通用权限(外传):杂谈

    1、 简介、数据库的总体结构 2、 介绍人员表组 3、 介绍组织结构表组 4、 介绍角色表组 5、 介绍“项目自我描述表组” 6、 权限到节点 7、 权限到按...

    用户1174620
  • 回归分析与相关分析的区别和联系

    在本节中,我们将首先讨论相关性分析,它用于量化两个连续变量之间的关联(例如,独立变量与因变量之间或两个独立变量之间)。回归分析是评估结果变量与一个或多个风险因素...

    拓端
  • 回归分析与相关分析的区别和联系

    在本节中,我们将首先讨论相关性分析,它用于量化两个连续变量之间的关联(例如,独立变量与因变量之间或两个独立变量之间)。回归分析是评估结果变量与一个或多个风险因素...

    拓端
  • 深度 | 如何理解深度学习的优化?通过分析梯度下降的轨迹

    神经网络优化本质上是非凸的,但简单的基于梯度的方法似乎总是能解决这样的问题。这一现象是深度学习的核心支柱之一,并且也是我们很多理论学家试图揭示的谜题。这篇文章将...

    机器之心
  • Asp.NetCore 部署

    一年之间
  • 电脑小白学习软件开发(八)-复杂数据类型介绍使用,枚举,数组

    枚举表示的是:限定只能包括列出来的值。我们这里以星期来举例子。顾名思义,星期只能包括星期一到星期日。用代码来表示下。

    做全栈攻城狮
  • Range单元格对象引用

    大家好,前面介绍了对象模型、对象属性和对象方法的基础知识,后续会介绍各种常用对象,以及他们的常用属性和方法。

    无言之月
  • 登录

    用户已经能够在我们的网站注册了,注册就是为了登录,接下来我们为用户提供登录功能。和注册不同的是,Django 已经为我们写好了登录功能的全部代码,我们不必像之前...

    追梦人物

扫码关注云+社区

领取腾讯云代金券