[英]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.