文献种类:专题技术文献;
开发工具与关键技术:Visual Studio 2015 权限的设置
作者: ;年级: ;撰写时间: 年 月 日
文献编号: ;归档时间: 月 日
最外层的权限设置
开发工具与关键技术:Visual
Studio 2015 权限的设置
作者:廖茂
撰写时间:2019年5月24日
做一个项目,好比如做一个需要登录的平台,一般都会将用户类型分为好几种,跟据登录用户的身份,来显示出不同的功能和页面内容,这需要在后台编写根据用户类型来显示所对应的功能和内容的控制流程代码,这个是一个平台最外层的权限设置,接下来就来说一下这个最外层的权限设置是如何完成的。
首先,要设置权限,涉及到“用户信息、模块信息、以及权限信息”,在数据库中表现为五张有所关联的表,物理数据模型如下:
知道了五张表之间的关系后,在这里设置了三种用户类型,分别是“管理员、用户类型一、用户类型二”,共有九个模块,管理员登录显示所有功能模块,用户类型一和用户类型二分别显示不同的功能模块,接下来开始编写代码,首先是视图中的方法,首先需要获取到模块的名称和ID:
var dirIdModlarName = {
"测试模块一": "TestModuleOne",
"测试模块二": "TestModuleTwo",
"测试模块三": "TestModuleThree",
"测试模块四": "TestModuleFour",
"测试模块五": "TestModuleFive",
"测试模块六": "TestModuleSix",
"测试模块七": "TestModuleSeven",
"测试模快八": "TestModuleEight",
"测试模块九": "TestModuleNine"
}
声明一个变量来接收模块名称和ID,前面为模块名称,后面为前端代码中设置的模块的ID,
获取到了模块的名称和ID后,对模块激进行权限限制:
用post方法提交,方法中的路径连接的是控制器中的控制流程代码,然后判断对象“objModulars”如果等于空字符串,就设置href等于“/”,如果不等于空字符串,就通过for循环来去掉用户没有的权限对应的模块:
给对象“objModulars”设置Key,然后声明一个变量并把Key赋值给这个变量,然后再判断如果变量的ID等于0,就声明两个变量分别接收“objModulars”这个对象的模块名称和前面的一个变量“dirIdModlarName”中的模块名称,最后去掉没有的权限对应的模块。视图中的方法就编写完了,接下来转到控制器:
首先声明一个int类型的变量接收Session中的用户ID,然后通过linq查询,联接模块表、模块明细表、权限表、用户类型表和用户角色明细表查出数据库中的模块ID和模块名称,并把模块ID和模块名称赋值给一个变量,接着还需要通过内联的方法查询出模块表中的模块ID和模块名称,并且将上一个变量“varLinq1”中的模块ID进行三目运算,如果前面的判断为true,就返回冒号前面的值,否则返回冒号后面的值,代码如下:
在最后返回变量userModular。
在外层的权限限制的过程呢过就是这样,需要获取登录用户的用户类型ID,再根据用户类型ID来去掉没有的全向对应的模块。