在做后台管理时用户登录后就需要验证哪些权限了,没有登录的就直接退出到登录页面。

系统有自带的权限[Authorize],可用于几个地方:

1、将属性[Authorize]置于相关的action上方,验证当前

[Authorize]
public ActionResult Index()
{
return View();
}

2、将属性[Authorize]置于控制器上方

[Authorize]
public class MainController : Controller
{
//
}

3、将Authorize应用到全局范围类,加入全局过滤器集合RegisterGlobalFilters方法,\App_Start\FilterConfig.cs:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new AuthorizeAttribute()); //新加行
filters.Add(new HandleErrorAttribute());
}

PS:如果有些控制器的action方法不需要验证,则在action上添加属性[AllowAnonymous]

但系统自带的不一定我们适用,这就要我们自定义了,规则我们可以自己写

新建AdminAuthorizeAttribute类,继承AuthorizeAttribute类,重写AuthorizeCore、HandleUnauthorizedRequest方法

     protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext.Session["username"] != null)
{
return true;
}
return false;
} protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.HttpContext.Response.Redirect("/Admin/Account/Login");
}

用法同上,把[Authorize]改为[AdminAuthorizeAttribute]就行了。

mvc权限验证--AuthorizeAttribute的更多相关文章

  1. NET MVC权限验证

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

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

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

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

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

  4. 权限验证AuthorizeAttribute

    /// <summary> /// 权限验证属性. /// </summary> public class AuthorizeExAttribute : AuthorizeAt ...

  5. MVC权限验证过滤器

    Action属性,权限设定属性   [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)] ...

  6. .net web mvc 权限验证

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

  7. C# MVC权限验证

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

  8. mvc 权限验证

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

  9. MVC权限验证之ActionFilterAttribute

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

随机推荐

  1. c# var的含义与用法

    VAR 是3.5新出的一个定义变量的类型其实也就是弱化类型的定义VAR可代替任何类型编译器会根据上下文来判断你到底是想用什么类型的至于什么情况下用到VAR 我想就是你无法确定自己将用的是什么类型就可以 ...

  2. python学习——练习题(8)

    """ 题目:输出 9*9 乘法口诀表. """ def answer1(): """ 自己用最普通的双重循环 ...

  3. Django models拆分

    大多数Django教程都是将models放在models.py文件(模块)中, 然而随着models类的增加, 将类放在一个文件中太混乱了, 于是将models做成一个package: 这样就可以将m ...

  4. jBPM4.4 eclipse插件安装

    一.工具下载     jBPM 图形化流程设计器采用eclipse做为平台,我们可以先到jBPM官方网站下jBPM4.4,地址:http://sourceforge.net/projects/jbpm ...

  5. ResultMap详解

    MyBatis:ResultMap详解   一.前言   MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBat ...

  6. Level Of Detail

    [Level Of Detail] LOD0离摄像机最近,LODN离摄像机最远.LOD Group组件的用法是,将此组件挂在根节点上,然后每一个LOD挂同样多的Renderer(通常是子对象). At ...

  7. Quartz_2_简单编程式任务调度使用(CronTrigger)

    第二个要介绍的任务调度器中的触发器是 CronTrigger ,相比较 SimpleTrigger 来说,CronTrigger 相对灵活,对于复杂的业务需求来说,更加的实用.要在使用 CronTri ...

  8. KVC的底层实现原理

    KVC是OC特有的,本质是在运行时动态的给对象发送setValue:forKey 消息,设置数值 -调用super.init 保证对象已经被创建完成 .当给对象发送setValue:forKey 消息 ...

  9. MAC命令大全

      OSX 的文件系统 OSX 采用的Unix文件系统,所有文件都挂在跟目录 / 下面,所以不在要有Windows 下的盘符概念. 你在桌面上看到的硬盘都挂在 /Volumes 下. 比如接上个叫做 ...

  10. opencv3.3

    --------------------opencv3.2 E:\Opencv\opencv3_2_1\opencv\mybuild\install\includeE:\Opencv\opencv3_ ...