基于VB.net和SQLServer的权限动态管理的设计与实现
2018-01-08廖亮刘瑛
廖亮 刘瑛
摘要:该文利用VisualBasic.Net 2017结合后台数据库SQL Server2008设计了一种动态管理用户权限的功能模块,能较好的应用到各种信息管理系统中,解决系统对用户权限动态分配的需求。
关键词:VB.Net;SQL Server;权限管理
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)36-0001-03
1 概述
随着计算机技术的发展,各行各业都逐步开发应用了相关的信息管理系统。信息系统在使用过程中,管理员经常需要根据不同的岗位,给不同员工分配不同的权限,当员工调换或调离岗位时,需要对员工权限及时进行更改与回收。目前,很多信息系统,设计时用户权限跟菜单项都是都是固定的,系统成型后,用户更改权限非常困难。针对这种情况,本文设计了一种可以根据用户需要,随时添加、调整岗位权限的动态权限管理模块,方便对员工灵活分配权限,操作简单,扩展性强,实现方法适用于各类信息系统。
2 總体思路
为了达到操作简单灵活的目的,界面设计时,在尽量减少界面数量的同时,要将界面设计得简单明了,功能集成度高,让用户一看就懂,一用就会。本文共重点讲述了两个界面:用户管理和权限管理。用户管理用来实现对用户的管理,包括新增、修改、停用工号及工号权限分配功能。权限管理包括岗位设置(新增、修改、停用)及岗位对应的权限分配。而后台数据库的设计,则需要建立:用户表、岗位表、权限明细表三张数据表。
设计完成后,用户登录之时,根据该用户拥有的权限ID,系统只调出该权限ID拥有的菜单。各级岗位的管理维护、用户管理和岗位权限分配,由管理员根据需求分配,达到统一管理动态分配的效果。
3 实现过程
3.1 系统流程设计
系统登录流程为:1)验证登录;2)查询相关权限;3)进入系统并获得相应菜单。具体流程如图1。
3.2 后台数据表设计
我们在SQL Server2008数据库中建立3张表:1用户表:Users(ID,UserName,Password,PowerID,jlzt);2岗位权限表:Power(ID,PowerName);3权限明细表: DetailPower(PowerID,MenueName)。数据表的属性见表1~3。
3.3 窗体设计
程序窗体采用的设计工具是VisualBasic.Net 2017,共设计了用户登录、主窗体、用户管理、权限管理四个Windows应用窗体。
3.3.1 定义全局变量与函数
定义了U_Id、U_Name、U_PowerID三个全局变量,用来保存登陆的用户信息(工号、用户名、权限编码);定义一个grdDataSource(ByVal str As String)函数,便于获取表格控件的数据源;定义一个用来加密解密用户密码的csmode类。具体代码不在此详述。
3.3.2 用户登录
用户登录时首先验证工号密码,验证通过后将工号、用户名和权限ID(PowerID)传给全局变量,然后调用主窗体并关闭本窗体。
3.3.3 主窗体设计
主窗体的设计重点在加载用户的菜单过程。本文的实现过程如下:
1 将所有菜单的子菜单visible属性设为不可见,即False。
2 根据变量U_PowerID的值,从DetailPower表中读取其拥有的权限菜单MenuName存到数据集中,然后遍历系统菜单,如果菜单名称在数据集中存在,则将该菜单visible属性设为True。执行结束后即完成了菜单的加载过程。
3.3.4 用户管理
用户管理界面如图2,实现了用户新增、修改、停/启用等功能,当用户数量较多时,可根据工号或用户名进行模糊查询。实现代码简单,在此不述。
3.3.5 权限管理
权限管理的界面设计如图3,它将权限(岗位)设置和对岗位的权限分配两个功能模块集成在一起,减少了用户操作。用户根据需要设置相应的权限(岗位)后,再分配相应的权限,即该权限能看到的系统菜单。
运行系统,用管理员工号登陆后,只需在权限管理界面即可实现权限的动态管理,在用户管理界面进行工号管理和设置工号权限,其他工号登录时只能看到管理员分配的功能菜单。
4 结束语
本文实现了权限(岗位)和权限菜单的自由分配,操作简单直观,实用性强,生成组件之后可以引用到其他系统中。
参考文献:
[1] 管文.基于访问权限网站的动态菜单的实现[J].电脑知识与技术,2013(11).
[2] 叶文胜,刘学贵.高职院校顶岗实习管理信息化平台中的动态菜单技术[J].无线互联科技,2012(9).