Action属性,权限设定属性  
  [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
public class PurviewEnumAttribute : Attribute
{
public string PurviewString { get; set; } public PurviewEnumAttribute(string purview)
{
this.PurviewString = purview;
}
}
Action属性,权限验证属性

  [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class SuperICAuthorizeAttribute : AuthorizeAttribute
{
public string[] ActionPowers { get; set; } public override void OnAuthorization(System.Web.Mvc.AuthorizationContext filterContext)
{
string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
string actionName = filterContext.ActionDescriptor.ActionName;
object[] attributes = filterContext.ActionDescriptor.GetCustomAttributes(typeof(PurviewEnumAttribute), true);
if (attributes != null && attributes.Count() > )
{
string power = (attributes[] as PurviewEnumAttribute).PurviewString;
this.ActionPowers = power.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
}
base.OnAuthorization(filterContext);
} protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext == null)
{
return false;
}
if (ActionPowers == null)
{
return true;
}
if (ActionPowers.Length == )
{
return true;
}
// if (ActionPowers.Any(httpContext.User.IsInRole))
if (ActionPowers.Any((new string[]{"","","",""}).Contains))
{
return true;
}
else
{
return false;
}
}
}

使用:Index需要权限为2的才能够进入,SuperICAuthorize过滤器中验证是否具有2的权限

[PurviewEnum("")]
[SuperICAuthorize]
public ActionResult Index()

MVC权限验证过滤器的更多相关文章

  1. NET MVC权限验证

    ASP.NET MVC权限验证 封装类 写该权限类主要目地 为了让权限配置更加的灵活,可以根据SQL.json.或者XML的方式来动态进行页面的访问控制,以及没有权限的相关跳转. 使用步骤 1.要建一 ...

  2. 在.Net MVC结构API接口中推断http头信息实现公共的权限验证过滤器演示样例

    //control   action public class TestController : ApiController { [MyAuthFilter] public string test(s ...

  3. ASP.NET MVC权限验证 封装类

    写该权限类主要目地 为了让权限配置更加的灵活,可以根据SQL.json.或者XML的方式来动态进行页面的访问控制,以及没有权限的相关跳转. 使用步骤 1.要建一个全局过滤器 //受权过滤器 publi ...

  4. C# MVC权限验证

    前言 之前一直没怎么接触过权限验证这块,刚好公司老平台改版,就有了这篇权限验证.此篇文章大致讲解下 精确到按钮级别的验证如何实现.以及权限验证设计的参考思路(菜鸟一枚,大神勿喷). 在开发大项目的时候 ...

  5. 关于filter web api mvc 权限验证 这里说的够详细了。。。

    参考:http://www.cnblogs.com/willick/p/3331520.html Filter(筛选器)是基于AOP(面向方面编程)的设计,它的作用是对MVC框架处理客户端请求注入额外 ...

  6. .net web mvc 权限验证

    这里分享MVC的权限验证,内容中可能存在一些,莫名其妙的方法,那些是以前封装好的,大致可以根据方法名称知道他的意思. using Game.Entity; using Game.Entity.Plat ...

  7. mvc 权限验证

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  8. mvc权限验证--AuthorizeAttribute

    在做后台管理时用户登录后就需要验证哪些权限了,没有登录的就直接退出到登录页面. 系统有自带的权限[Authorize],可用于几个地方: 1.将属性[Authorize]置于相关的action上方,验 ...

  9. MVC权限验证之ActionFilterAttribute

    参考:http://www.cnblogs.com/waitingfor/archive/2011/12/27/2303784.html ActionFilterAttribute是Action过滤类 ...

随机推荐

  1. 嵌入式表单字段中的内容可能被server更改以删除不安全的内容。是否要又一次载入您的页面以查看保存结果?

    嵌入式表单字段中的内容可能被server更改以删除不安全的内容.是否要又一次载入您的页面以查看保存结果?         近期有朋友问到,当他在SharePoint首页上进行编辑时.插入一段代码. 完 ...

  2. c++ string类的完整实现!!!

    本文实现了c++ STL中的basic_string模板类,当然.通过typedef也就实现了string类和wstring类.限于篇幅,实现代码中用到了标准库的char_traits模板类,本人自己 ...

  3. 基于IBM Bluemix的数据缓存应用实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:IBM® Data Cache for Bluemix 是快速缓存服务.支持 Web 和 ...

  4. light oj 1317

    Description You probably have played the game "Throwing Balls into the Basket". It is a si ...

  5. Java排序之直接选择排序

    public class SelectSort { public static void selectSort(int [] a){ int min; int temp; if(a==null || ...

  6. jzoj1495 宝石 解题报告[扫描线]

    Description 见上帝动了恻隐之心,天后也想显示一下慈悲之怀,随即从口袋中取出一块魔术方巾,让身边的美神维纳斯拿到后堂的屏风上去试试,屏风是正方形的,高和宽方向上各划有m条鱼屏风的边平行的直线 ...

  7. vs2015发布项目到虚拟主机组策略阻止csc.exe程序问题

    这个问题之前碰到过一次,这次又碰到,就记录一下解决方法. 这个问题的产生的原因,据说是虚拟主机没有权限执行exe文件造成的,如果是独立服务器的话发布就不会出现这个问题. 使用VS2015发布web项目 ...

  8. BZOJ 1001 平面图与对偶图的转化 最短路Or最大流

    思路: 1.按照题意求最小割 转换成最大流用Dinic解 2. 转换成对偶图 求最短路 Dinic: //By SiriusRen #include <queue> #include &l ...

  9. yarn平台的任务调度和执行过程

  10. Golang 在 Mac、Linux、Windows 下交叉编译

    Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能. Mac下编译Linux, Windows平台的64位可执行程序: CGO_ENABLED= GOOS=linux GOARCH= ...