在加一个策略,要求cliam的值必须是123

第二个参数的类型

可变参数 ,可以是这三种类型

变成一个集合也可以

策略内置的几种方式

自定义


RequireAssetion的参数是个Func,Func可以理解为一个匿名方法,匿名方法有个参数叫做Conext,全名叫做

全名叫做AuthorizationHanlderContext

p判断当前用户是否有个Edit Albums的cliam。如果有就返回true

上面和下面道具是一样的 下面的可以自定义写一个代码进行更复杂的裸机判断

可变参数,手写一些类,让类实现这个接口。参数里面可以加上自定义的requirment类

https://www.cnblogs.com/cgzl/p/9282059.html

6分29秒


继承自:IAuthorizationRequirement。
属性就是要暴露给外面使用

让这个邮箱以126.com为结尾的邮箱

Requirement有了,怎么怎么处理呢?需要一个handler
这里加多个自定义的Requirement

新建类EmailHandler

实现接口:AuthorizationHandler泛型的类型就是 EmailHandler 

查看类型是Email 的

把类别单独独立出来


如果满足要求了就返回成功,否则就是啥也没干。返回的不是失败,是啥也没干

注册这个Handler


再做一个无参的Requirement。意思是要找合格的用户,具体怎么合格要看handle了

创建handler,可以编辑专辑的用户就是合格的用户


争对这个requirement再写一个handler

注册一个requirement和两个handler

现在这个策略里面有两个requirement,看看是两个都满足呢还是满足一个就可以

给AlbumController加上属性

可以加多个测流,不过这里我就先添加一个策略做测试

这一个策略里面有两个Requirement,看看最终是满足一个还是两个都要满足

我们这个Email的Requirement里面判断是要Cliam带Email的 当前里面的用户应该是都不满足的

但是肯定有用户满足第二个要求

测试下这个用户 有Editg Albums这个Cliam

管理员角色下有这两个用户

这三个用户都满足第二个Requirement的其中的一个handler。但是没有人满足126邮箱的handler。虽然有126邮箱但是没放在Claim里面

这个用户应该有权限的 ,。但是点进去之后,提示不行

也就是策略里面的这两条必须要同时满足,现在把上面Email的注释掉

这次可以访问了

这个用户满足Edit Albums这个要求

被拒绝了

这里加个字母s

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 18. 基于Claim和Policy的授权 下 - 自定义Policy的更多相关文章

  1. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道

    ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道 语雀: https://www.yuque.com/yuejiangliu/dotnet/ ...

  2. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 过滤器

    在MVC的请求管道 并不是  asp.net core的请求管道.所以说Filter是专用于MVC的 贯穿特性,横穿关注点.比如授权.日志 这里的Authorize其实就是一个Filter,主要用来授 ...

  3. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 02. Web Host 的默认配置

    视频地址: https://www.bilibili.com/video/av38392956/?p=2 语雀 https://www.yuque.com/yuejiangliu/dotnet/ixt ...

  4. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 12. Views 下

    ASP.NET Core MVC 13. 安装前端库 Partial VIew 就是部分View,他没有自己的数据,数据来自图中白色的那块,它的数据需要传进去,第一个参数是View的名称,第二个参数就 ...

  5. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 04. 中间件

    注册startup类可以配置我们web应用的启动逻辑,使用的就是UseStartUp方法,asp.net core就会实例化这个类 并调用startup类里面的两个方法ConfigureService ...

  6. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 13. 安装前端库

    前端库使用npm进行安装,需要先建立webpack.json文件 因为我们没有使用npm安装任何库,所以npm的文件夹是空的 这里是用于开发时构建时引用的库写在这里 这里用到bootStrap 开发时 ...

  7. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 27. CICD Azure DevOps

    VSTS做持续集成 后来改名叫做Azure Deveps https://azure.microsoft.com/zh-cn/services/devops/ 这是中文的地址 创建一个项目 名称.描述 ...

  8. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 01. 创建项目 +项目结构和配置简介

    新建项目:Tutotial.Web 解决方案名称可以把web去掉 视频里面把git这个选项勾选了.我就不勾选了 dotnet CLI创建项目 首先必须安装好了.net Core的SDK dotnet ...

  9. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 05.Controller 的路由

    视频地址: https://www.bilibili.com/video/av38392956/?p=5 这里面就包含了MVC相关的库 可以通过打开右侧的Nuget库进行查看 这里修改下 ,只需要静态 ...

随机推荐

  1. android 拍照预览

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  2. [CSS3] Define Form Element States with CSS Form Pseudo Classes

    Using just semantic CSS Pseudo-Classes you can help define important states for form elements that e ...

  3. 生活娱乐 WIFI机器人(某机器发烧友自己动手做一台)

    某机器发烧友自己动手做一台WIFI机器人,以下是这位发烧友的自述!让我们一起来分享他的劳动成果-- 在经历了十多天的疯狂淘宝.组装.调试.拆卸.再组装.再调试的过程后,俺的Wifi Robot终于于2 ...

  4. javaweb 中的过滤器 包装器

    过滤器要做的事情: 请求过滤器:完毕安全检查,又一次格式化请求首部或体.建立请求审计或日志 响应过滤器:     压缩响应流,追加或改动响应流创建一个全然不同的响应. 过滤器和servlet三个相似地 ...

  5. 设计模式之命令模式(Command)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于怎样创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  6. JOIN ,LEFT JOIN ,ALL JOIN 等的区别和联系

    left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录  right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) ...

  7. 【献给CWNU的师弟】Web篇

    2014年10月8日 献给CWNU的师弟

  8. SpringInAction4笔记——web

    1,java配置 extends AbstractAnnotationConfigDispatcherServletInitializer public class SpitterWebInitial ...

  9. 理解yarn平台,理解万岁,肤浅理解也万岁~

    从Hadoop1到Hadoop2很大程度上解放了Jobtracker资源调度的问题,这就得多亏了yarn平台了.我知道的,除了我们的大豆瓣用的是Mesos,咱们国家可以说应该是99.99%都使用的是y ...

  10. HTML canvas

    什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...