zoukankan      html  css  js  c++  java
  • ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 18. 基于Claim和Policy的授权 下


    在加一个策略,要求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




     

  • 相关阅读:
    IOS开发报错之Undefined symbols for architecture armv6
    企业级证书使用帮助
    使用Hybris的customer coupon进行促销活动(promotion)
    Hybris Storefront里产品图片显示不出来的分析方法
    HubSpot company数据在UI上的展示和通过API方式进行获取
    有些CRM settype用事务码COMM_ATTRSET打不开的原因
    Global variable in ABAP function group
    CRM product model的用法
    How to prove that SAP CRM WebUI is a stateful application
    CRM产品主数据在行业解决方案industry solution中的应用
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/10930885.html
Copyright © 2011-2022 走看看