2020-09-08

开发工具与关键技术: MVC
作者:罗培发 ;年级:1903 ;撰写时间: 2020 年 9 月6日
文献编号: 归档时间: 年 月 日

	 权限的应用
开发工具与关键技术: MVC
作者:罗培发 
撰写时间:2020.9.6
1、获取页面全部菜单
var dirIdModlarName = {
                "PNR": "PNR",
                "电子票证": "ELectromicTicket",
                "统计功能": "Statistic",
                "其他": "Other",
                "系统维护": "SystemManagement",
                "PNR预约": "PNRAppointment",
                "PNR查询": "PNRQuery",
                "订单查询": "SelectOrder",
                "行程显示": "StrokeDisplay",
                "免费出票": "FreeTickets",
                "票证查询/修改": "TicketModify",
                "代理人票证查询": "AgentTicketQuery",
                "电子客票打印换开": "TicketPrint",
                "票证历史记录查询": "TicketHistoryQuery",
                "旅客电子票查询": "TravelHistoryQuery",
                "销售报告统计": "SalesReportStatistics",
                "支付统计": "PaymentStatistics",
                "运输数据查询统计": "TDQstatistics",
                "虚拟账户查询": "VirAccountQuery",
                "开通工号": "OpenOffNumber",
                "用户资料维护": "UserDataMaintain",
                "票证下发": "IssuanceTicket",
                "导出AR数据": "ExportARdata",
                "导出LK数据": "ExportLKdata",
                "航班维护": "FlightMaintain",
                "密码修改": "ModifyPassword",
                "角色维护": "RoleMaintain",
                "三字代码维护": "TCCMaintain",
                "舱位等级维护": "ClassMaintain",
                "票号维护": "TicketNumMaintain",
            }
2、删除没有权限的对应的菜单
$.post("/Main/SelectModularJurisdiction", { time: (new Date()).getTime().toString() }, function (objModulars) {
                console.log(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];
                            console.log(elId);
                            $("#" + elId).remove();
                        }
                    }
                }
            });
3、获取请求的URL
string url = filterContext.HttpContext.Request.Url.AbsolutePath;
(2)检查是否登录,跳过登录检查URL
  if (url == "/" || url == "/Main/Login" || url == "/Main/CreateValidImage" || url == "/Main/UserLogin")
 {
        return;
}
loginUserID = Convert.ToInt32(filterContext.HttpContext.Session["userID"].ToString());
(3)权限检查
if (url == "/" || url.Contains("/Main/"))
                {
                    return;
               }
 第一种:获取在登录时 查询的权限模块信息
List<ModuleVo> userModules = filterContext.HttpContext.Session["userModules"] as List<ModuleVo>;
第二种,每一次请求都查询一遍权限
 
根据/分割 -> 0-空字符串,1-区域名称,2-控制器名称,3-Action
string[] strUrls = url.Split('/');
                if (strUrls.Length >= 4)
                {
                    string areaName = strUrls[1];//获取区域名称
                    string controllerName = strUrls[2]; //获取控制器名称
                    //一般情况权限处理--判断 区域和 控制器
                    int exist = userModules.Count(o => o.moduleName == controllerName && o.parentModule.moduleName == areaName);
                    if (exist == 0)
                    {
                        filterContext.HttpContext.Response.Redirect("/Main/NoPermission");
                    }
注:前面获取的权限菜单,必须的去数据库验证名称是否相同,不相同!权限就无法实现。
     还有,必须得在方法前执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值