【.Net MVC学习笔记】--过滤器
2015-08-07 09:10
176 查看
之前实习Java的时候,有接触过滤器和监听器,觉得.NET也类似,无非就是在配置文件写写配置,其实不然...
这里只用到其中一种过滤器Action filter,用来判断用户登录和权限,对于其他类型,接触过后会慢慢完善。
过滤器类:(判断Session的用户是否有对应的菜单和功能)
ActionResult传入菜单ID,JsonResult传入功能ID
这里只用到其中一种过滤器Action filter,用来判断用户登录和权限,对于其他类型,接触过后会慢慢完善。
过滤器类:(判断Session的用户是否有对应的菜单和功能)
public class AdminAuthAttribute : ActionFilterAttribute { public string MenuId { get; set; }//菜单编号 public string FuncId { get; set; }//功能编号 public override void OnActionExecuting(ActionExecutingContext filterContext) { var temp_Admin = filterContext.HttpContext.Session[BaseController.LOGIN_ADMIN] as User_Admin; var temp_Menulist = temp_Admin.MenuList; var Menu = temp_Menulist.Where(o => o.MenuId == MenuId).ToList(); var Fun=temp_Admin.FuncList.Where(o=>o.FuncId==FuncId).ToList(); if (Menu.Count == 0 || Fun.Count==0) { JsonResult json = new JsonResult(); json.Data = new { message = "没有权限" }; json.JsonRequestBehavior = JsonRequestBehavior.AllowGet; filterContext.Result = json; } } }控制器调用:
[AdminAuthAttribute(MenuId = "M008")] [HttpGet] public ActionResult Index() { return View(); }
ActionResult传入菜单ID,JsonResult传入功能ID
相关文章推荐
- 服务
- iOS开发系列--地图与定位
- C/C++知识要点3——类成员函数的重载、覆盖和隐藏的区别
- scikit-learn(工程中用的相对较多的模型介绍):1.14. Semi-Supervised
- 设计模式—简单工厂模式
- iOS开发系列--网络开发
- Win10 Edge浏览器关闭兼任列表的方法
- C++中的string类的用法小结
- 【NYIST】暑假训练赛 (一)-----Problem H
- [leetcode-81]Search in Rotated Sorted Array II(C)
- va_start和va_end使用详解
- SQL Server窗口函数:ROWS与RANGE
- 文件输出输出IO类
- Android 点击按钮实现来回切换背景图和文字
- Android View滚动、拉伸到顶/底部弹性回弹复位
- iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
- printf函数格式化输出使用总结
- MAC OS X 终端命令入门 (简单常用整理)
- Context的作用
- 源码推荐(8.07):快速创建Settings屏幕,icon间优雅的过渡