使用场景:不同角色的用户登录后具有不同的功能权限。如:A用户为普通用户,登录平台有6个菜单的操作权限,B用户为中级用户,登录平台拥有12个菜单的操作权限等
功能描述:针对不同角色用户拥有不同权限
步骤如下:
1、创建表,具体的sql语句如下:
1
2 create table admin_action 3 ( 4 actionid int primary key identity( 1, 1), 5 actionname varchar( 50), -- 动作名称 6 actiongroupid int , -- 动作分栏号(映射到actiongroup表) 7 action varchar( 50), -- 动作字符串 8 vidwmode varchar( 10) -- 是否可见 9 ) 10 11
12 create table admin_action_group 13 ( 14 actiongroupid int primary key identity( 1, 1), 15 actiongroupname varchar( 50) -- 动作分栏名称 16 ) 17 18
19 create table admin_action_group_manager 20 ( 21 id int primary key identity( 1, 1), 22 action varchar( 50), -- 动作名称(映射到action表) 23 usergroupid int , -- 动作所属组(映射到usergroup表) 24 createuserid int , -- 创建者id 25 createusername varchar( 50), -- 创建者名称 26 createdate datetime -- 创建时间 27 ) 28 29
30 create table admin_user_group 31 ( 32 groupid int primary key identity( 1, 1), 33 groupname varchar( 50) , -- 管理组名称 34 groupinfo varchar( 50), -- 管理组信息 35 36 -- userid int,--创建者id 37 -- username varchar(50),--创建者名称 38 cratedate datetime default getdate() -- 组创建时间 39 ) 40 41
42 create table admin_user 43 ( 44 userid int primary key identity( 1, 1), 45 username varchar( 50), -- 管理员名称 46 password varchar( 50), -- 管理员密码 47 truename varchar( 50), -- 真实姓名 48 email varchar( 50), -- email 49 -- userid int ,--创建者id 50 -- username varchar(50),--创建者名称 51 createdate datetime default getdate() -- 创建日期 52 )
View Code
2、 查询的sql语句
1 select b.username,b.truename,c.groupname,f.actiongroupname,e.actionname,e.action 2 from admin_user as b 3 left join admin_user_group as c on c.groupid =b.groupid 4 left join admin_action_group_manager as d on d.usergroupid =b.groupid 5 left join admin_action_menu as e on e.actionid =d.actionid 6 left join admin_action_group as f on f.actiongroupid =e.actiongroupid where b.username = ' admin1 ' 7 order by f.actiongroupname
3、c#代码部分
有了上面的铺垫,该部分的代码就比较简单了,各位自己写下吧,主要就是查询,就不贴代码了
本代码仅供参考,如果有好的建议或意见欢迎各位给予评价。
注:如想增加增、删、改等权限,自行修改即可。