利用反射及ActionFilterAttribute实现MVC权限管理
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权限管理相关推荐
- CentOS文件权限管理
CentOS文件权限管理 目录 文件属性 chown更改所有者 chgrp更改所属组 文件权限rwx chmod修改权限 默认权限umask 权限判定的顺序 特殊权限SUID,SGID,sticky ...
- [转]Asp.Net大型项目实践(11)-基于MVC Action粒度的权限管理【续】【源码在这里】(在线demo,全部源码)...
本文转自:http://www.cnblogs.com/legendxian/archive/2010/01/25/1655551.html 接上篇Asp.Net大型项目实践(10)-基于MVC Ac ...
- (转)一步一步Asp.Net MVC系列_权限管理之权限控制
原文地址:http://www.cnblogs.com/mysweet/archive/2012/08/05/2623687.html 在权限管理中一个很重要的就是关于权限的拦截验证问题,特别是我们在 ...
- MVC身份验证及权限管理(转载)
from https://www.cnblogs.com/asks/p/4372783.html MVC自带的ActionFilter 在Asp.Net WebForm的中要做到身份认证微软为我们提供 ...
- ASP.NET MVC 企业级实战 —— 创建用户权限管理范例程序(三)
上一篇,主要讲解了模型的创建和利用Entity Framework来操作数据库,这篇我们会讲解如何创建控制器和视图. 由于最近很多网友反馈在VS 2012 无法安装NBlock框架模版,故再次声明,N ...
- php 位运算与权限,PHP巧妙利用位运算实现网站权限管理的方法
首先我们先定义4个常量来设定四种权限: ===================================== define(ADD,1);//增加数据库记录的权限 define(UPD,2);/ ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理(附源码)
前言目录 前言:时间很快,已经快到春节的时间了,这段时间由于生病,博客基本没更新,所以今天写一下我们做的一个项目吧,是对权限的基本操作的操作,代码也就不怎么说了,直接上传源码和图片展示,下面我们直接进 ...
- (转)一步一步Asp.Net MVC系列_权限管理设计起始篇
原文地址:http://www.cnblogs.com/mysweet/archive/2012/07/26/2610793.html 前一段时间,写了一步一步asp.net的一系列博客,最近,也快要 ...
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(8) 权限管理,自定义权限,扩展权限...
索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来做权限的管理,这篇比较多 希望新手朋友慢慢消化 项目准备 我们用的工具是:VS 2013 ...
最新文章
- 记一次订单号重复的事故,快看看你的 uuid 在并发下还正确吗?
- Android 图片 OOM问题总结
- GNU Automake
- apache tomcat部署web应用的三种实现方式
- PHP操作Redis步骤详解
- uvalive5983(二分+dp)
- hdu 3047 Zjnu Stadium(并查集)
- 12563 - Jin Ge Jin Qu hao
- 爬虫5_python2_使用 Beautiful Soup 解析数据
- IDEA访问不到SpringBoot项目webapp下的内容
- SpringSocial简介
- ai面试的优缺点_找工作时让AI给你面试,你愿意吗?
- 解决Win10能登陆QQ却无法打开网页问题
- Django之models.py
- jks与keystore的转换
- 使用WireShark查看TCP的三次握手
- 转载:摄影相关照片(相纸)尺寸大…
- 子域名收集 -- Maltego CE
- Windows 7 开机自动拨号 常用的五种方
- 服务器s4系列固态,尘埃落定 揭晓四大顶级主控胜负_固态硬盘_固态硬盘评测-中关村在线...