接着通过policyBuilder将认证策略名称为"自定义授权策略"的认证方案和授权条件集合.
?
添加到AuthorizationPolicyBuilder实例的下面两个属性中去
?...说明你不在采用授权组件的默认策略,所以
?
接着
?
又去判断当前需要授权元数据的Authorize特性中是否设置了Roles特性,且可以设置多个,以","分隔
?...这里和角色一样不介绍了
到这里你会发现 基于认证方案授权策略+基于角色的授权策略=自定义策略的授权策略.
接着,如果没有任何控制器或者方法使用授权策略,那么使用最基本的拒绝匿名访问api策略
?...调用授权服务,进行授权校验.默认的授权服务注入点如下:
?
?
构建授权上下文,接着拿到所有的授权处理器.遍历执行
?
这个参数,可配置,当一个授权策略校验失败,便不再执行接下去的授权策略....最后返回授权结果
?
总结:本质就是将
?
特性中的这两个参数,交给IAuthorizationHandler授权处理器处理.当然如果你制定了认证方案,那么则会去判断当前用户是否登陆.