在加一个策略,要求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. 【面试 springMVC】【第四篇】springMVC的一些问题

    1.springMVC的工作流程是什么样的 1.用户请求到达 2.DispatcherServlet接收请求,发送给处理器映射器 3.处理器映射器handlerMapping,处理找到对应处理器,返回 ...

  2. Qt编写串口通信程序全程图文讲解 .

    在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类.我们可以去 http://sourceforge.net/projects/qex ...

  3. android 获取屏幕宽高 和 获取控件坐标

    一.获取屏幕宽高: (1). WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE); int width ...

  4. Android新手入门2016(7)--布局

    布局,这个在服务端变成是没有的,也是服务端的人学习client的一道坎吧. 曾经用cocos2d-x写小游戏的时候就是这个非常难懂,或者能用,可是理解不多的话,非常难写出好的布局,难以适合商业化的应用 ...

  5. net spy memcached 使用demo

    package memcached; import java.io.IOException; import java.net.InetSocketAddress; import net.spy.mem ...

  6. [Python-MATLAB] 在Python中调用MATLAB的API

    可以参考官方的说明文档: http://cn.mathworks.com/help/matlab/matlab_external/get-started-with-matlab-engine-for- ...

  7. dsp端编译异常之max和min未定义

    (1)在函数之前 声明__stdcall 时 在linux 端或dsp端 linux 之前的加上宏定义 __stdcall是MS的编译器使用的只需要#define __stdcall定义一个宏就可以 ...

  8. leetcode笔记:Pascal's Triangle

    一. 题目描写叙述 Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows ...

  9. reviews of learn python3 the hard way

    Almost every time,I try my best to write a long review of the book I have read. But this time I want ...

  10. Eclipse中设置编码的方法

    Eclipse中设置编码的方式如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码.然而,Eclipse工作空间(workspace)的缺省字 ...