代码改变世界

mvc超简单权限控制-只在登录的时候控制相关页面和相关增删查按钮权限

2018-11-02 10:10  马尔代夫_珍  阅读(401)  评论(0编辑  收藏  举报

目前实现只在登录时,根据登录账号进行相关页面,相关增删查相关功能按钮的权限控制。

相应数据库中有5张表来控制权限:

权限基础表:PowerID是在数据库中select newid()获取到的,PowerCode随意编号,PowerName按功能描述取名字。

insert into CM_Power(PowerID, PowerCode, PowerName) values('5164df24-c12a-4b39-846d-047174f90f9e', '0101', '审核运动')

insert into CM_Power(PowerID, PowerCode, PowerName) values('E4AEC0CE-764C-41F1-B5DB-AE3034E5D958', '0104', '增减按钮')
insert into CM_Power(PowerID, PowerCode, PowerName) values('44E3D13A-374E-4ED2-A449-AE9011D0FB43', '010401', '增加按钮')

 

分组基础表:GroupID是select newid()获取的,GroupName最好是按功能描述--也就是和上面权限大致意思一样,便于以后对应设置。

insert into CM_Group (GroupID, GroupName) values('e4a4e3e3-79f7-45e5-9cc3-5ed41ac24ae5','审核运动')
insert into CM_Group (GroupID, GroupName) values('91B09676-1598-4F57-AB9C-15104661CA35','新增调整总里程')

 

组权限功能表:设置每个功能小组对应什么权限,GroupID对应分组基础表中的小组id,PowerCode权限code对应权限基础表中的code表--该code值,是要以后查询出来写后台的。

insert into CM_GroupPower (GroupID, PowerCode)values('e4a4e3e3-79f7-45e5-9cc3-5ed41ac24ae5','0101')
insert into CM_GroupPower (GroupID, PowerCode)values('91B09676-1598-4F57-AB9C-15104661CA35','010401')

 

所有用户分组表:设置所有登录用户的账号,以便在登录时控制整体权限--各页面权限和增删查功能按钮权限。

GroupID对应分组基础表中id,UserID对应dbo.user基础表中的ID.

注意:CM_UserGroup这张表很关键,一个登录账号可以在多个不同的分组,相当于具有不同的功能权限。

例如,以下是一个登录账号有3个分组,有3个模块的功能。

insert into CM_UserGroup (GroupID, UserID) values('c7a000ab-16ac-4c25-93ef-14019fbefb5c','086DE0CE-8225-4EA8-88D2-FFD65254C2ED')
insert into CM_UserGroup (GroupID, UserID) values('e4a4e3e3-79f7-45e5-9cc3-5ed41ac24ae5','086DE0CE-8225-4EA8-88D2-FFD65254C2ED')
insert into CM_UserGroup (GroupID, UserID) values('91B09676-1598-4F57-AB9C-15104661CA35','086DE0CE-8225-4EA8-88D2-FFD65254C2ED')

 总结:以上叙述都是针对一个简单的项目。一般项目有menu菜单表,记录所有页面id,在这个表中对应每个id设置不同的权限,例如:场和公司权限。