权限管理系统的重要特性总结:
1) 高度集成的权限系统、独立模块,能快速整合使用。
2) 符合权限的国际通用标准,基于RBAC(基于角色的访问控制)的角色权限控制。
3) 多数据库架构支持,内置支持SqlServer、Oracle、MySql、SQLite、Access数据库。
4) 用户管理基于分级管理理念,集团分子公司、事业单位处室/局级可独立管理人员/角色等数据。
5) 用户接入的各种应用系统,均可实现用户登陆日志、操作日志的记录。
6) 管理员可以控制登陆用户的黑白名单列表,实现严格的登陆控制管理。
7) 权限系统也是基于《Winform开发框架》的成熟架构,稳定高效、更易使用和理解。
8) 权限管理系统文档齐全、完善的应用支持和集成项目经验,开发项目更有保证。
权限管理系统说明:
《Winform开发框架》、《WCF开发框架》和《混合式开发框架》三个框架是我们经过多年的项目积累,吸收众多框架产品客户的宝贵意见,反复提炼优化而成的。在这几款开发框架中,我都应用到了一个《通用的权限管理系统》(简称权限管理系统),这个作为一个独立的系统模块,但又可以整合到所有的框架产品和项目中,实现快速的权限管理和控制。
权限的分配和管理,基本上是每个业务系统需要考虑的东西,而这些常用的东西,在整个开发框架中,把它作为一个独立的模块,既方便维护管理,也留有接口很容易进行集成,这样能够在项目中反复进行使用。
权限管理系统主要的功能包括有:用户管理、组织机构管理、功能管理、角色管理和权限分配管理、菜单管理、系统类型管理、登录日志管理、操作日志管理、系统黑白名单管理等功能模块。对于每新增一个系统,我们只需要在权限管理系统中增加一个系统类型定义,以及相关的功能、菜单数据即可,非常方便管理。
一、用户管理
1、用户登陆
在权限管理系统登录界面输入账号和密码后(默认账号admin,密码为空),即可进入权限管理系统的主界面,权限管理系统主要的功能包括有:用户管理、组织机构管理、功能管理、角色管理和权限分配管理、菜单管理、系统类型管理、登录日志管理、操作日志管理、系统黑白名单管理等功能模块。
2、用户分级管理
权限管理系统的用户管理是基于分级管理理念,集团分子公司、事业单位处室/局级可独立管理人员/角色等信息。
系统分了两级管理员用户:超级管理员和公司管理员。超级管理员可以管理整个集团或者整个系统的人员和相关信息(包括组织机构、角色、登陆日志、操作日志等信息的分级);公司管理员可以管理分子公司、事业单位处室/局级这样的组织机构的人员和相关信息。
分级管理组织机构、角色、用户等相关数据,能够减少管理员的相关工作,提高工作效率,并能增强权限管理系统对权限的控制和资源分配等管理,提高用户的认同感。
3、新建/编辑用户
在系统用户信息模块里面,可以在组织机构树右键“新建”或者“新建”按钮上,触发弹出新建用户的操作,如下界面所示。
在新建用户的界面上,输入必须的用户名、真实姓名、所属公司、默认机构/部门等信息,其他信息可选输入。用户的所属机构、所属角色、可操作功能,在后面的介绍操作中进行分配管理,新建用户不需要管理这些信息。
在用户基本信息界面里面,用户“所属公司”,是一个下拉的树形列表,里面按照组织机构的分级进行展示公司信息,如下所示。
“默认机构/部门”是根据用户选择的“所属公司”进行过滤的,根据用户选择所属公司,列出该公司下的所有组织机构树形列表供选择,如下所示。
编辑用户界面和新建用户界面显示,在界面上显示已经录入的用户信息和用户的关系信息,包括所属机构、所属角色、可操作功能等。
4、用户导入
为了快速录入系统用户信息,权限管理系统提供Excel的数据批量导入操作,如下所示。
在用户管理列表的“导入”操作按钮中触发,弹出一个通用的Excel数据导入界面,里面指定了导入数据的“Excel模板”,用户根据模板字段列输入相关的信息,然后通过“浏览”按钮触发数据的显示,如果确认无误,即可进行“保存数据”的操作。
5、用户导出
权限系统的用户数据,也可以通过“导出”按钮进行用户数据的导出操作,如下所示。
6、用户查询
用户的查询,可以通过按组织机构查看、按角色查看和根据查询条件查询,前两者通过树形列表,方便用户快速查询用户,由于用户是分级管理,因此不同的公司管理员,看到的组织机构和角色数据有所不同,他们可以管理自己管辖内的用户数据。
1) 按组织机构查询
2) 按角色查询
3) 根据查询条件查询
二、组织机构管理
1、组织机构列表
权限管理系统中的组织机构列表,是一个层级的树形列表,基本的节点可以分为集团、公司、部门和工作组这几个级别,在组织机构树中选择机构后,界面中间及右边区域会显示详细的组织机构信息和相关数据。
2、新建/编辑组织机构
新建组织机构,可以在左边的树形列表上的右键菜单上操作,也可以在顶部的“添加”按钮上进行操作。新建组织机构信息,处在同一个界面里面,用户输入相关数据保存即可。
3、包含用户管理
组织机构可以通过“包含用户”的方式,把系统其他部门的用户纳入到该部门管理范畴中,这样,如果分配给该部门的权限,自动会授权给这些包含进来的用户,实现用户权限的累加管理。
单击“包含用户”界面的“添加”按钮,弹出一个“选择人员”的对话框,对话框界面里的用户数据是根据部门和角色进行分类的,用户可以在左边的树列表中快速查看指定范畴内的用户数据,右边的列表中有勾选项目,勾选后单击“添加选择”即可添加到底部的用户选择区域,也可以在选择区域里面删除指定用户选择,界面如下所示。
三、角色管理
角色是权限系统管理里面最为重要的部分,整个系统符合权限的国际通用标准,基于RBAC(基于角色的访问控制)的角色权限控制,这样和权限相关的信息,都是通过角色进行关联,因此角色还需要管理和用户之间的关系、和组织机构之间的关系、和可操作功能之间的关系等等。
1、角色基础信息管理
2、包含机构管理
3、包含用户管理
和组织机构包含用户功能一样,弹出选择用户对话框,选择对应的用户列表信息。
4、可操作功能
四、系统类型定义
系统类型定义,是用作区分一个业务应用系统的标识,权限系统支持多个业务应用系统的继承,虽然默认是一个,但是可以根据需要进行扩充,使得权限管理系统管理的范畴更大,实现所有业务系统共享一个权限管理系统的布局。
1、系统类型列表
2、新建/编辑系统类型
五、功能管理
功能管理,是业务应用系统的权限控制最小单元,可以用作控制系统的按钮、菜单等界面元素,也可以用作控制显示或隐藏的某些字段的操作。
1、功能列表
2、新建/编辑功能
为了方便一次性添加多个功能单元,可以通过“批量添加”操作进行功能的批量添加,批量添加界面如下所示。
3、可操作角色
六、菜单管理
1、菜单列表
一般Winform程序中,菜单都是直接写在主程序中的,这样对于经常性修改和维护菜单的相关信息,可能有所不便,而且对于插件化的系统应用,新增菜单是常见的事情,这样就需要对菜单进行动态配置管理了,通过后台菜单的配置和权限的指定,能够实现菜单的动态加载和权限验证。
因此菜单也是权限分配的一部分,为了有效管理菜单资源,我们把菜单放到权限管理系统中进行管理控制,可根据用户权限进行动态控制显示。
设定好菜单的图标和Winform窗体类型,就能在Winform框架中动态构建菜单信息了。菜单的图表放置在系统的相对目录下即可。
2、新建/编辑菜单
新建或者编辑的菜单界面如下所示,除了需要输入“显示名称”外,还需要选择“上级菜单”,如果菜单需要进行权限控制,那么在“功能控件ID”输入需要的控制键即可,如下红色框选部分。
菜单的“上级菜单”是一个下拉的树状列表,方便显示层次关系并进行选择。
七、系统黑白名单
在一般的权限系统里面,可能经常会看到系统的黑名单或者白名单的拦截功能。在一般 权限系统里面,常见的黑名单就是禁止用户在某些IP上登录系统,白名单就是允许用户只在某些IP上登录系统。本随笔主要介绍在我的权限系统里面,如何实现这个黑白名单的功能,以及介绍在其中应用到的IP对比操作,IP段判断等操作代码。
1、黑白名单列表
要完成黑名单的拦截和白名单的放行,我们需要进行名单的配置操作,我们把相关的配置放到列表里面进行展示,可以添加多个黑名单或者白名单,如下界面所示。
2、新建/编辑黑白名单
可以在黑白名单列表上单击“新建”按钮进行添加一条记录,或者在已有记录上双击黑白名单可以进行编辑,界面如下所示。
通过“添加用户”按钮,在弹出的选择人员界面中,指定黑白名单的人员列表即可。
3、系统登录拦截效果
八、用户登陆日志
1、登陆日志列表
九、用户操作日志
在很多业务系统里面,数据是很敏感的,特别对于一些增加、修改、删除等关键的操作,如果能在框架层面的支持基础上,以最少的代码实现重要表的日志记录,那么是一件非常值得庆贺的事情,也能够为我们客户的数据提供重要的日志跟踪,甚至是数据恢复的参考。
通过权限管理系统的支持和《Winform开发框架》的底层支持,业务系统模块,只需要通过一行代码就能实现业务表的日志记录,这对我们开发新的业务模块,效率可以提高很多,同时也能给客户提供更好的数据支持服务。通过在权限系统模块里面配置参数和显示操作日志记录,能够给业务开发提供基础性的开发框架支持。
1、用户操作日志列表
2、操作日志的参数设置
在操作日志的参数配置列表里面,我们可以添加一些业务表操作日志配置,然后通过在开发时刻,一行代码指定记录日志操作,即可实现操作日志的记录。
3、查看详细操作日志
1) 修改记录的操作日志
2) 增加记录的操作日志
十、系统集成管理
1、项目中集成权限系统登陆
实现代码就是调用该程序集的接口API启动权限系统的登陆界面,如下所示。
2、项目中集成权限控制
1)系统登陆及权限获取
2)项目权限控制
十一、提供基于多种数据库的整合
权限系统和其他框架一样,提供基于多种数据库(SqlServer/Oracle/MySql/SQLite/Access等数据库)的整合支持。虽然我们在实际项目中,一般采用一种数据库进行处理,但是不同的项目,采用的数据库类型可能不同,本Winform开发框架为了方便演示和扩展的需要,内置支持了SqlServer/Oracle/MySql/ SQLite /Access,更多的数据库,也可以通过扩展数据库访问基类的方式进行更多数据库的支持。
整个权限管理系统的数据库访问,能够手动配置数据库类型,对于同一种数据库,也可以把数据存储分开存储,如业务数据存储在一个数据库,权限管理控制存储在另外一个数据库这种方式。