一种基于json格式的功能操作权限控制方法

文档序号:8412780阅读:590来源:国知局
一种基于json格式的功能操作权限控制方法
【技术领域】
[0001]本发明涉及权限控制技术领域,具体地说是一种实用性强、基于JSON格式的功能操作权限控制方法。
【背景技术】
[0002]在现有技术中,通常的权限管理是利用RBAC (Role-Based Access Control,基于角色的访问控制),通过角色与权限进行关联。这种权限管理技术比较全复杂,数据存储较为麻烦,每次功能操作的权限都需要读取数据库表,在数据量较大或者表结构设计不清晰的情况下,会导致权限判断效率低下。基于此,现提供一种基于JSON格式的功能操作权限控制方法,该方法通过简单配置文件的方式来判断权限,解决上述问题。

【发明内容】

[0003]本发明的技术任务是针对以上不足之处,提供一种实用性强、基于JSON格式的功能操作权限控制方法。
[0004]一种基于JSON格式的功能操作权限控制方法,其具体实现过程为:
首先定义每个操作权限控制所需要的条件:当用户访问权限时,动态读取条件,根据内存中当前用户的相关数据,动态的解析条件,来判断当前有没有此操作的权限;
当步骤a)中获取到权限的名字,则根据此名字将对应的权限控制的数据加载到内存;将步骤b)加载到内存中的权限控制数据根据初始状态,逐条判断每个操作的条件集是否有操作权限;
将步骤c)获取的有操作权限的信息返回到客户端,客户端脚本将所有操作的信息生成为相关的按钮,并注册相关事件。
[0005]所述步骤c)的详细判断过程极为判断每个操作的条件集是否返回true:返回true则表示有此操作权限,并将此操作的相关数据写入到内存;当返回false时,则继续判断下一个操作的条件集,直到初始状态下的所有操作都判断完成。
[0006]当用户操作页面上的按钮时,当前的操作信息返回服务器,其中包含的信息有当前操作的编号、当前操作的下一个状态;根据当前操作的下一个状态,依次判断出接下来有权限的操作,并返回客户端,客户端重绘界面上的操作按钮。
[0007]所述权限控制文件以JSON格式书写,客户端与服务器端对权限进行判断时,读取相同的文件。
[0008]本发明的一种基于JSON格式的功能操作权限控制方法,具有以下优点:
本发明提出的一种基于JSON格式的功能操作权限控制方法为.Net环境下实现操作权限验证的方法,有利于开发人员进行快速的开发,Web端与Server端可以同时解析同一份配置文件,而不需要做任何修改,达到统一性;本发明面向开发人员,可快速的判断权限,不需要动态的读取数据库,利用配置文件,完成权限的可配置,实用性强,易于推广。
【具体实施方式】
[0009]下面对本发明作进一步说明。
[0010]本发明公开了一种基于JSON格式的功能操作权限控制方法,其具体实现过程为: 首先定义每个操作权限控制所需要的条件:当用户访问权限时,动态读取条件,根据内存中当前用户的相关数据,动态的解析条件,来判断当前有没有此操作的权限;
当步骤a)中获取到权限的名字,则根据此名字将对应的权限控制的数据加载到内存;将步骤b)加载到内存中的权限控制数据根据初始状态,逐条判断每个操作的条件集是否有操作权限;
将步骤c)获取的有操作权限的信息返回到客户端,客户端脚本将所有操作的信息生成为相关的按钮,并注册相关事件。
[0011]所述步骤c)的详细判断过程极为判断每个操作的条件集是否返回true:返回true则表示有此操作权限,并将此操作的相关数据写入到内存;当返回false时,则继续判断下一个操作的条件集,直到初始状态下的所有操作都判断完成。
[0012]当用户操作页面上的按钮时,当前的操作信息返回服务器,其中包含的信息有当前操作的编号、当前操作的下一个状态;根据当前操作的下一个状态,依次判断出接下来有权限的操作,并返回客户端,客户端重绘界面上的操作按钮。
[0013]此外,可以在客户端直接请求到权限控制文件,此过程涉及到数据的加密解密。然后将权限控制的判断在客户端进行判断,判断方法与上述步骤相同。
[0014]所述权限控制文件以JSON格式书写,客户端与服务器端对权限进行判断时,读取相同的文件。
[0015]实施例:
权限定义的JSON数据如下所述。
[0016]{
’ SM_CommonFuncMgr’: {
’ Start’: [{
’Condit1n’: ’ (vars.State==O vars.State==4) &&vars.RefState〈5’,
’ Act1n’: ’ add’ ,
’ Name’: ’ 新增’,
'NextState': ' Start',
'Group': ' I'
},{
’Condit1n’: ’ (vars.State==O vars.State==4) &&vars.RefState〈5’,
’ Act1n’: ’ removeTarget’,
’Name’: ’删除’,
'NextState': ' Start',
'Group': ' I'
},{ ’ Condit1n’: ’ (vars.State==O| |vars.State==4)&&vars.RefState〈5,,
’ Act1n’: ’ upRow',
’ Name’: ’ 上移’,
’ NextState1: ’ Start’,
’ Group': ’ 2,
I, {
’ Condit1n’: ’ (vars.State==O| |vars.State==4)&&vars.RefState〈5,,
’ Act1n’: ’ downRow',
’ Name’: ’ 下移’,
’ NextState1: ’ Start’,
’ Group': ’ 2,
},{
’ Condit1n’: ’ (vars.State<6)&&vars.RefState<5&&vars.State!=2&& vars.ScoreState!=〃2〃’,
’ Act1n’: ’ SaveDatai,
’ Name’: ’ 保存’,
’ NextState1: ’ Start’,
y /-λy ,
Group: ?
},{
’ Condit1n’: ’ (vars.State==O| |vars.State==4)&&vars.RefState〈5,,
’ Act1n’: ’ submit’,
’ Name’: ’提交审批’,
’ NextState1: ’ Start’,
y /-λy ,
Group: ?
}
}o
[0017]读取JSON文件,传入当前相关数据判断每个操作的Condit1n是否为true,相关代码如下:
a) Web 端。
[0018](stateObj.Condit1n===,,|| ^ra7(state0bj.Condit1n)) {
buttonlnfos.push ({
ButtonName: stateObj.Name,
ButtonAct1n: stateObj.Act1n,
Order: ’ ’,
Group: stateObj.Group
I); }o
[0019]b) Server 端。
[0020]dynamic obj = JsonConvert.DeserializeObject (smString);if (currentAct1n.Length == 0)
{
foreach (dynamic state in obj [currentState])
{
string condit1n = Convert.ToString(state[^Condit1nal.Value);
bool isButtonShow = false;
if (!string.1sNullOrWhiteSpace(condit1n))
{
var reg = new TypeRegistry();reg.RegisterSymbol (〃vars〃,arg);
var p = new CompiledExpress1n(condit1n) { TypeRegistry = reg
};
if (p.Eval ().ToString () == Boolean.TrueString)
{
isButtonShow = true;
}
}
Else
{
isButtonShow = true;
}
if (isButtonShow)
{
buttonlnfos.Add (new PFButtonInfo () {
ButtonAct1n = Convert.ToString(state[〃Act1n〃].Value), ButtonName = Convert.ToString(state[〃Name〃].Value),
Group = Convert.ToString(state[〃Group〃].Value)
I);
}
}
}o
[0021]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种基于JSON格式的功能操作权限控制方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
【主权项】
1.一种基于JSON格式的功能操作权限控制方法,其特征在于,其具体实现过程为: a)首先定义每个操作权限控制所需要的条件:当用户访问权限时,动态读取条件,根据内存中当前用户的相关数据,动态的解析条件,来判断当前有没有此操作的权限; b)当步骤a)中获取到权限的名字,则根据此名字将对应的权限控制的数据加载到内存; c )将步骤b )加载到内存中的权限控制数据根据初始状态,逐条判断每个操作的条件集是否有操作权限; d)将步骤C)获取的有操作权限的信息返回到客户端,客户端脚本将所有操作的信息生成为相关的按钮,并注册相关事件。
2.根据权利要求1所述的一种基于JSON格式的功能操作权限控制方法,其特征在于,所述步骤c)的详细判断过程极为判断每个操作的条件集是否返回true:返回true则表示有此操作权限,并将此操作的相关数据写入到内存;当返回false时,则继续判断下一个操作的条件集,直到初始状态下的所有操作都判断完成。
3.根据权利要求2所述的一种基于JSON格式的功能操作权限控制方法,其特征在于,当用户操作页面上的按钮时,当前的操作信息返回服务器,其中包含的信息有当前操作的编号、当前操作的下一个状态;根据当前操作的下一个状态,依次判断出接下来有权限的操作,并返回客户端,客户端重绘界面上的操作按钮。
4.根据权利要求2所述的一种基于JSON格式的功能操作权限控制方法,其特征在于,所述权限控制文件以JSON格式书写,客户端与服务器端对权限进行判断时,读取相同的文件。
【专利摘要】本发明公开了一种基于JSON格式的功能操作权限控制方法,其具体实现过程为:a)首先定义每个操作权限控制所需要的条件;b)当步骤a)中获取到权限的名字,则根据此名字将对应的权限控制的数据加载到内存;c)将步骤b)加载到内存中的权限控制数据根据初始状态,逐条判断每个操作的条件集是否有操作权限;d)将步骤c)获取的有操作权限的信息返回到客户端,客户端脚本将所有操作的信息生成为相关的按钮,并注册相关事件。该一种基于JSON格式的功能操作权限控制方法与现有技术相比,解决Web端与Server端通过内存中数据对用户操作权限的验证一致问题,并且不需要写太多验证逻辑,通过可配置的方式实现对操作权限的控制。
【IPC分类】G06F21-30, G06F21-62
【公开号】CN104732123
【申请号】CN201510129172
【发明人】刘元方, 徐强, 杨浩, 杜晓东
【申请人】浪潮集团有限公司
【公开日】2015年6月24日
【申请日】2015年3月24日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1