四、Attribute(2)授权角色过滤器
一、授权过滤器
1、新建一个mvc 项目
2、首先创建一个过滤器 MyAuthorizeAttribute 继承AuthorizeAttribute,并重写 AuthorizeCore
public class MyAuthorizeAttribute : AuthorizeAttribute
{ protected override bool AuthorizeCore(HttpContextBase httpContext)
{
string currentRole = httpContext.Request.Cookies["role"].Value;
//从Session中获取User对象,然后得到其角色信息。如果用户重写了Identity, 则可以在httpContext.Current.User.Identity中获取
if (Roles.Contains(currentRole))
return true;
return base.AuthorizeCore(httpContext);
} }
然后controler 引用过滤器
[MyAuthorize(Roles = "Admin")]
public ActionResult Index()
{
return Content("过滤器通过了");
}

接下来再做一个授权不通过跳转到登录界面的:
先重写HandleUnauthorizedRequest
/// <summary>
/// 重写过滤不过跳转登录界面
/// </summary>
/// <param name="filterContext"></param>
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.HttpContext.Response.Redirect("/Home/Login"); //base.HandleUnauthorizedRequest(filterContext);
}
登录
public ActionResult login()
{
return Content("这是登录界面");
}
如图:

四、Attribute(2)授权角色过滤器的更多相关文章
- Apache shiro集群实现 (四)shiro授权(Authentication)--访问控制
		
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
 - 2535-springsecurity系列--关于授权角色“ROLE”前缀的问题
		
版本信息 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...
 - oracle创建表空间、创建用户、授权角色和导入导出用户数据
		
使用数据库管理员身份登录 -- log as sysdba sqlplus / as sysdba; 创建临时表空间 -- create temporary tablespace create tem ...
 - Web API使用记录系列(四)OAuth授权与身份校验
		
呼,开干第四篇,基于OWIN搭建OAuth认证授权服务器与接口身份校验. OAuth包含授权码模式.密码模式.客户端模式和简化模式,这里我们文章记录的是密码模式和客户端模式. 目录 引用安装 授权处理 ...
 - Spring Cloud源码分析(四)Zuul:核心过滤器
		
通过之前发布的<Spring Cloud构建微服务架构(五)服务网关>一文,相信大家对于Spring Cloud Zuul已经有了一个基础的认识.通过前文的介绍,我们对于Zuul的第一印象 ...
 - Owin+ASP.NET Identity浅析系列(四)实现用户角色
		
在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… 通过Owin+ASP.NET ...
 - 权限项目总结(四) shiro 授权
		
概述 Authorization(授权):不难理解,授权就是用来控制当前訪问用户在訪问系统资源权限. 这个词也做证书的解释,从证书这个角度来讲,推断是否拥有对资源訪问的权限时.当前用户须要提供证书. ...
 - Spring Security 学习笔记-授权控制过滤器
		
FilterSecurityInterceptor 是比较核心的过滤器,主要负责授权工作.SecurityMetadataSource 需要安全授权的元数据资源 AuthenticationMana ...
 - Django 笔记(四)模板标签 ~ 自定义过滤器
		
模板标签: 标签在渲染的过程中提供任意的逻辑 语法: 由{% ... %} 和 {% end... %} 常用标签: with:类似取别名 模版继承: Django模版引擎中最强大也是最复杂的部分就是 ...
 
随机推荐
- 利用Oracle定时任务重置序列
			
业务需求是:二元化编号规则:RYH+年月+001(开始),按月计算,每月1号重置为001 数据库中已有序列和函数如下: 解决方法:采用Oracle定时任务,每月1号重置该序列从1开始增长,SQL如下: ...
 - docker命令小结
			
文档:docker命令小结.note链接:http://note.youdao.com/noteshare?id=54015b76db9ae764182cb921e348b7fc&sub=DD ...
 - 二、windows下搭建vue开发环境+IIS部署
			
有时我们的服务器并不一定是node,也许是IIS,这样我们就需要把工程构建出来,与IIS集成. 构建该项目的命令如下 cnpm run build 将dist文件夹拷贝出来,放到IIS的发布目录,在浏 ...
 - 如何使用QTP12 UFT做功能性测试(转载)
			
首先,按照本博客的安装教程走的,右键管理员运行 接下来点击继续,这个界面只需要勾选到web即可 点击ok,开始运行 进入到主界面之后,file新建一个测试. 可以修改路径等等 点击create之后,出 ...
 - 远程访问禅道开源版数据库(基于docker)
			
navicat访问基于docker搭建的禅道的数据库,报错”2003 can't connect to MySQL server on '' (10061 'unknown error')“ 一.开启 ...
 - Y2K Accounting Bug POJ2586
			
Description Accounting for Computer Machinists (ACM) has sufferred from the Y2K bug and lost some vi ...
 - sql绕过转义符注入
			
宽字节绕过总结 1. 重点:转义符反斜杠\,ASCII码0x5C 2. 在双字节字符集中, 在\前面增加高字节,0x5C被当做低字节,组合为“汉字”,导致\符号被“吃掉”,后续字符逃出限制,从而绕 ...
 - 又做了个新的Blog
			
http://inkhin.com 服务器比较渣,访问不了的请见谅.
 - 小菜鸟之HTML第二课
			
JavaScript 运行在浏览器上的一种基于对象和事件的驱动的脚本语言 基于对象(windows – document location histroy 便于调用对象属性和方法 事件驱动 键盘和鼠标 ...
 - Base64encoder干什么用的
			
https://baike.baidu.com/item/base64/8545775?fr=aladdin BASE64加密算法.用来给字符串加密的.已经不安全了. 一直以来Base64的加密解密都 ...