开发工具与关键技术: Visual Studio 权限模块
作者:黎凤焕
撰写时间:2019年 6 月 17 日
模块权限设置有两个方法,首先设置模块权限,获取用户ID,第一个方法是先隐藏,后显示,第二个方式是删除没有的。了解了方法一,现在了解权限的方法二。
$(function () {
//模块权限设置
var UserID = @Session[“UserID”];//获取用户ID
//方法一 (先隐藏,后显示)。
//JurisdictionMenuOne(UserID);
//方法二(删除没有的)。
JurisdictionMenuTwo();
});
//二:方法二(删除没有的)。
function JurisdictionMenuTwo(){
//获取页面全部菜单
var dirIdModlarName = {
“用户管理”: “UserManagement”,
“分类训练”: “ClassifiedTraining”,
“实战测试”: “ActualCombatTest”,
“实战模拟”: “SimulationExercise”,
“查看历史答卷”: “HistoryAnswer”,
“发布公告”: “IssuanceNotice”,
“试题管理”: “TestQuestion”,
“学院基础数据维护”: “CollegeInfor”
}
$.post("/Main/SelectModularJurisdiction", { time: (new Date()).getTime().toString()}, function (objModulars) {
if (objModulars=="") {
window.location.href = “/”;
} else {
for (key in objModulars) {
var obj = objModulars[key];
if (obj.ID == 0) {
var modularName = obj.ModularName;
var elId = dirIdModlarName[modularName];
$("#" + elId).remove();//去掉没有的权限对应的菜单
//console.log(modularName);
}
}
}
});
}
方法二和方法一差不多,都是要读取权限信息,首先在控制器上通过用户ID,查询用户表,进行多表查询,先查询用户表, 用户角色明细表,权限表,模块明细表,最后查询模块表,然后获取模块ID,获取模块。通过post提交的方法提交,删除所有的,先获取页面全部菜单,把所有的菜单列出来。方法二比方式一的步骤复杂点,方法二运用左连接的方法。