ASP.NET 实现简单的权限控制

来源:互联网 发布:网络传销项目 编辑:程序博客网 时间:2024/05/11 05:30

无论什么系统基本上都会涉及到权限的控制,不同角色的人有不同的访问权限,这篇文章简单说说如何来实现这个功能,思路有很多种,这里就不一一列举了:
首先说说数据库的结构,当然这也是最主要的事情。
我们可以将这个过程分为3部分,用户、用户组、功能项。根据用户去检查该用户是属于哪一个用户组,在根据用户组去查找该用户组能够使用的功能项。
数据库表结构(最基础的):
Table1:sys_UserInfo
Columns1:UserName   nvarchar(20)   not null
Columns2:UserPwd     nvarchar(20)   not null
Columns3:GroupID     nvarchar(50)   not null
Columns4:Description   nvarchar(20)   not null
Columns5:CreatDate   nvarchar(50)   not null
****************************************************************
Table2:sys_Group
Columns1:GroupID   nvarchar(50)   not null
Columns2:GroupName     nvarchar(50)   not null
Columns3:Description     nvarchar(50)   not null
Columns4:CreatDate   nvarchar(50)   not null
****************************************************************
Table3:sys_Function
Columns1:FunctionID   nvarchar(50)   not null
Columns2:FunctionName     nvarchar(50)   not null
Columns3:FunctionPage     nvarchar(50)   not null
Columns4:FunctionDesc   nvarchar(50)   not null
Columns5:GroupID    nvarchar(50)   not null
Columns6:CreatDate   nvarchar(50)   not null
 
首先我们建立好用户组,比如说administrator组,建立好了以后会产生一个ID,然后建立功能项,在功能项表里面的GroupID字段指定为administrator组的ID。这时候我们建立user,建立User的时候我们指定这个User是属于哪一个用户组的,如图:
 
然后设置该组别的访问权限。如图:
 
 
当用户登录的时候根据用户的用户名去找到这个用户的用户组名称,然后根据用户组ID去SYS_Function里面去找到这个用户组对应的一些功能,有可能很多项目,所以登录的时候将这写功能项读取出来保存在一张Table里面,然后加载进来,这样就实现了简单权限控制。。。
当然这只是最基础的一种方法,思路有很多,比如还可以细化到每一个按钮,如:不同的用户可以点击不同的按钮,张三可以点击查询按钮,李四可以点击删除按钮等等。关键是看什么需求了。。。