1.利用反射获取当前程序集下的所有控制器和方法,拼接后写入到数据库。

 public void GetRightInfo(){var ControllerIDMax = db.rights_info.Select(p => p.RightsID).Max() + 1;var controllerTypes = Assembly.GetExecutingAssembly().GetTypes().Where(p => typeof(IController).IsAssignableFrom(p));foreach (var item in controllerTypes){var actionMethods = item.GetMethods().Where(q => q.ReturnType.Name == "ActionResult");foreach (var action in actionMethods){var rightsName = item.Name.Replace("Controller", "").ToLower() + "/" + action.Name.ToLower();var ControllerInfo = new rights_info(){RightsID = ControllerIDMax,RightsName =rightsName};if (db.rights_info.Where(p => p.RightsName == rightsName).Count() == 0){db.rights_info.AddObject(ControllerInfo);ControllerIDMax++;}}}db.SaveChanges();}

Get Url

2.重写ActionFilterAttribute的OnActionExecuting方法实现自定义action权限访问。

  public override void OnActionExecuting(ActionExecutingContext filterContext){//url of visitvar controllerName = filterContext.RouteData.Values["controller"].ToString().ToLower();var actionName = filterContext.RouteData.Values["action"].ToString().ToLower();var url = controllerName + "/" + actionName;//get rights of uservar userInfo = HttpContext.Current.Session["UserId"] == null ? "" : HttpContext.Current.Session["UserId"].ToString();var right = db.cus_cusmanagersinfo.Where(p => p.cus_Id == userInfo).Select(p => p.cus_Rights).First().Split(',');//checklong t = db.rights_info.Where(p => p.RightsName == url).Select(p => p.RightsID).First();var check = right.Contains(t.ToString());if (!check){//RedirectionfilterContext.Result = new RedirectResult("/home/index");}}

重写OnActionExecuting

转载于:https://www.cnblogs.com/fuxuyang/p/7359011.html

利用反射及ActionFilterAttribute实现MVC权限管理相关推荐

  1. CentOS文件权限管理

    CentOS文件权限管理 目录 文件属性 chown更改所有者 chgrp更改所属组 文件权限rwx chmod修改权限 默认权限umask 权限判定的顺序 特殊权限SUID,SGID,sticky ...

  2. [转]Asp.Net大型项目实践(11)-基于MVC Action粒度的权限管理【续】【源码在这里】(在线demo,全部源码)...

    本文转自:http://www.cnblogs.com/legendxian/archive/2010/01/25/1655551.html 接上篇Asp.Net大型项目实践(10)-基于MVC Ac ...

  3. (转)一步一步Asp.Net MVC系列_权限管理之权限控制

    原文地址:http://www.cnblogs.com/mysweet/archive/2012/08/05/2623687.html 在权限管理中一个很重要的就是关于权限的拦截验证问题,特别是我们在 ...

  4. MVC身份验证及权限管理(转载)

    from https://www.cnblogs.com/asks/p/4372783.html MVC自带的ActionFilter 在Asp.Net WebForm的中要做到身份认证微软为我们提供 ...

  5. ASP.NET MVC 企业级实战 —— 创建用户权限管理范例程序(三)

    上一篇,主要讲解了模型的创建和利用Entity Framework来操作数据库,这篇我们会讲解如何创建控制器和视图. 由于最近很多网友反馈在VS 2012 无法安装NBlock框架模版,故再次声明,N ...

  6. php 位运算与权限,PHP巧妙利用位运算实现网站权限管理的方法

    首先我们先定义4个常量来设定四种权限: ===================================== define(ADD,1);//增加数据库记录的权限 define(UPD,2);/ ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理(附源码)

    前言目录 前言:时间很快,已经快到春节的时间了,这段时间由于生病,博客基本没更新,所以今天写一下我们做的一个项目吧,是对权限的基本操作的操作,代码也就不怎么说了,直接上传源码和图片展示,下面我们直接进 ...

  8. (转)一步一步Asp.Net MVC系列_权限管理设计起始篇

    原文地址:http://www.cnblogs.com/mysweet/archive/2012/07/26/2610793.html 前一段时间,写了一步一步asp.net的一系列博客,最近,也快要 ...

  9. 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(8) 权限管理,自定义权限,扩展权限...

    索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来做权限的管理,这篇比较多 希望新手朋友慢慢消化 项目准备 我们用的工具是:VS 2013 ...

最新文章

  1. 记一次订单号重复的事故,快看看你的 uuid 在并发下还正确吗?
  2. Android 图片 OOM问题总结
  3. GNU Automake
  4. apache tomcat部署web应用的三种实现方式
  5. PHP操作Redis步骤详解
  6. uvalive5983(二分+dp)
  7. hdu 3047 Zjnu Stadium(并查集)
  8. 12563 - Jin Ge Jin Qu hao
  9. 爬虫5_python2_使用 Beautiful Soup 解析数据
  10. IDEA访问不到SpringBoot项目webapp下的内容
  11. SpringSocial简介
  12. ai面试的优缺点_找工作时让AI给你面试,你愿意吗?
  13. 解决Win10能登陆QQ却无法打开网页问题
  14. Django之models.py
  15. jks与keystore的转换
  16. 使用WireShark查看TCP的三次握手
  17. 转载:摄影相关照片(相纸)尺寸大…
  18. 子域名收集 -- Maltego CE
  19. Windows 7 开机自动拨号 常用的五种方
  20. 服务器s4系列固态,尘埃落定 揭晓四大顶级主控胜负_固态硬盘_固态硬盘评测-中关村在线...

热门文章

  1. 如何通过网络,辨别数字世界的真假
  2. CKeditor3.6.2 配置与精简
  3. 分布式一致Hash算法
  4. 【转】流言终结者:Windows系统与Linux系统之间的8个流言
  5. php通用检测函数集合
  6. VS .NET(C#)四舍五入方法(转)
  7. html圆点虚线,html的a标签点击后出现虚线框问题
  8. 分享Kali Linux 2017.1镜像
  9. Swift3.0语言教程获取C字符串
  10. Xamarin iOS教程之添加和定制视图