• UseAuthentication和UseAuthorization


    UseAuthentication 就是鉴权 找出解析请求携带的信息

    UseAuthorization 授权 权限检查,看看有没有权限

     我们先来同步几个知识。

    policy 是策略 满足什么条件 不可以叠加 

    roles 是角色 特殊的policy  也是规则只是微软封装好了的特殊策略。 roles 可以多个叠加(roles=(user,admin))

    authenticationSchemes 用户信息来源,比如他是基于cookies 还是jwt 的 .可以多schemes

    1多个Scheme是可以共存的

    2不标记或者标记默认Scheme走的都是默认鉴权

    3也可以通过标记指定Scheme去鉴权

    4声明多个Scheme信息都保存Context.User

    1多个Authorize声明,是需要叠加满足,才能访问
    2单个的Authorize声明,Policy和Role需要同时满足,才能访问
    3 单个的Authorize声明,用户信息来源以AuthenticationSchemes声明为准(没有则用默认,有多个则可以共享用户信息)
    4多个Role可以写在一起,满足一个就行
    5多个Policy,如果要同时满足,就分成多个Authorize声明,如果满足一个就行,则写成一个DRequiredment

    AddUseAuthorization()默认就有了  是在addControllers() 里面的包含的。

    通过源码我们不难看到 UseAuthentication   就是在往context.user 里面装赋值。  在UseAuthorization   授权的时候 看看这个里面又没有这个值 并且有么有权限

    授权源码

     

     

  • 相关阅读:
    洛谷P2805 植物大战僵尸
    洛谷P4307 球队收益
    bzoj4842 Delight for a Cat
    洛谷P2053 修车
    bzoj2561 最小生成树
    bzoj3114 LCM Pair Sum
    洛谷P4486 Kakuro
    bzoj3698 XWW的难题
    关于oracle数据库
    toString方法的用法
  • 原文地址:https://www.cnblogs.com/jasontarry/p/15386139.html
Copyright © 2020-2023  润新知