基于VB.net和SQLServer的权限动态管理的设计与实现

2018-01-08 19:32廖亮刘瑛
电脑知识与技术 2017年36期

廖亮 刘瑛

摘要:该文利用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).