繁体   English   中英

Asp.net Core中基于多个声明的基于声明的授权

[英]claim-based Authorization for multiple Claims in Asp.net Core

从本文获得帮助:

https://docs.microsoft.com/zh-cn/aspnet/core/security/authorization/policies

我试图为我的操作创建一些策略,但是在某些操作中,我想拥有多个策略,并且如果用户有两个策略,则它们可以访问controller的Actions:

    [Authorize(Policy = "CanAccessMenu1")]
    [Authorize(Policy = "CanAccessMenu2")]
 public async Task<IActionResult> ActionFroMultiplePolicies([FromBody] ActionRequest request)
        {
//..............
}

如何合并此政策? 我可以使用这样的东西吗?

[Authorize(政策=“ CanAccessMenu1,CanAccessMenu2”)]

在这种情况下,也许我需要对该覆盖函数进行一些更改。 但我对此一无所知:

Protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, CanAccessRequirement requirement)
        {
        }

谢谢你的帮助

不是您想要的方式; 策略旨在累积。 例如,如果您使用两个单独的属性,则它们必须都通过。

您必须在单个策略中评估OR条件。 但是您不必在单个处理程序中将其编码为OR。 您可能有一个具有多个处理程序的需求。 如果两个处理程序中的任何一个标记为成功,则满足要求。 请参阅blowdart的Authorization Workshop中的步骤6。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM