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   授权的时候 看看这个里面又没有这个值 并且有么有权限

 

 

授权源码

 

 

 

posted @ 2021-10-10 19:04  非著名架构师  阅读(1953)  评论(0编辑  收藏  举报