我有以下配置(所有控制器的默认策略):
app.UseEndpoints(endpoints =>
{
endpoints
.MapControllers()
.RequireAuthorization();
});
然后我的控制器用它自己的Authorize属性用另一个(非默认)策略覆盖它
[Authorize("Full")]
public class MyController : ControllerBase
{
}
然后使用哪种策略?我假设控制器和最终的action指定了一个,但也许所有的加起来都是这样呢?
发布于 2019-12-30 05:42:38
要访问MyController
,它应该同时匹配两个策略:来自RequireAuthorization
的DefaultPolicy
和自定义Full
策略。此外,可以通过向UseAuthorization
中间件提供策略来更新DefaultPolicy
:
services.AddAuthorization(options =>
{
options.DefaultPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireClaim("claimName")
.Build();
});
https://stackoverflow.com/questions/59503373
复制