您的位置:首页 > 其它

【.Net MVC学习笔记】--过滤器

2015-08-07 09:10 176 查看
之前实习Java的时候,有接触过滤器和监听器,觉得.NET也类似,无非就是在配置文件写写配置,其实不然...

这里只用到其中一种过滤器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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: