开发工具与关键技术: Visual Studio 权限模块
作者:黎凤焕
撰写时间:2019年 6 月 17 日
权限是一个项目必不可少的一部分,不可忽略的模块,做出来的项目,很多情况不同角色的人物所看到的,所操作的模块各有不同,所以做项目的时候,往往会有权限这个模块,权限的功能是实现不同人操作的模块,看到的内容不同,角色不同所看到的内容就不同,模块权限设置有两个方法,首先设置模块权限,获取用户ID,第一个方法是先隐藏,后显示,第二个方式是删除没有的。
$(function () {
//模块权限设置
var UserID = @Session[“UserID”];//获取用户ID
//方法一(先隐藏,后显示)。
//JurisdictionMenuOne(UserID);
//方法二(删除没有的)。
JurisdictionMenuTwo();
});
下面了解第一个方法,首先在控制器上通过用户ID,查询用户表,进行多表查询,先查询用户表, 用户角色明细表,权限表,模块明细表,最后查询模块表,然后获取模块ID,获取模块。通过getJson提交的方法提交,先隐藏模块,再显示,先把项目里面的模块一一列出来进行隐藏。
//模块权限查询 By 用户ID 方法一
public ActionResult MoKuaiQuanXianSelect(int UserId)
{
var caozuoid = (from tdUser in myEntities.PW_User
join tdUserRoleDetail in myEntities.PW_UserRoleDetail on tdUser.UserID equals tdUserRoleDetail.UserID
join tdJurisdiction in myEntities.PW_Jurisdiction on tdUserRoleDetail.UserTypeID equals tdJurisdiction.UserTypeID
join tdModularDetail in myEntities.SYS_ModularDetail on tdJurisdiction.ModularDetailID equals tdModularDetail.ModularDetailID
join tdModular in myEntities.SYS_Modular on tdModularDetail.ModularID equals tdModular.ModularID
where tdUser.UserID == UserId
select new
{
ID = tdModularDetail.ModularID,//获取模块ID
Name = tdModular.ModularName.Trim()//获取模块(菜单)
}).ToList();
return Json(caozuoid, JsonRequestBehavior.AllowGet);
}
//一、方法一(先隐藏,后显示)。
function JurisdictionMenuOne(UserID) {
$.getJSON("/Main/MoKuaiQuanXianSelect?UserId=" + UserID + “&time=” + (new Date()).getTime(), function (data) {
//先隐藏全部模块
$("#ClassifiedTraining").hide(); //分类训练
$("#SimulationExercise").hide(); //实战模拟
$("#test").hide(); //实战测试
$("#HistoryAnswer").hide(); //查看历史答卷
$.each(data, function (i) {
switch (data[i].Name) {
case "分类训练":
$("#ClassifiedTraining").show();
break;
case "实战模拟":
$("#SimulationExercise").show();
break;
case "实战测试":
$("#test").show();
break;
case "查看历史答卷":
$("#HistoryAnswer").show();
break;
}
});
});
}