.Net Core Web API 不同角色的平等路径

.Net Core Web API equal paths for different roles

我正在尝试为不同类型的用户创建具有相同路径的多条路由:

[Authorize]
public class MyController: Controller
{
    [HttpGet("/products")]
    [Authorize(Roles = "Administrator")]
    public IActionResult ListProducts()
   {
           // ...
   }

   [HttpGet("/products")]
   [Authorize(Roles = "Supervisor")]
   public IActionResult ListProducts()
   {
           // ...
   }
}

但是我遇到了多路由匹配错误。有没有办法让多个端点具有相同的名称,但角色不同?

您可以将用户角色作为输入参数传递给特定方法。然后根据角色价值做任何事情。

    public IActionResult ListProducts(String role) { 
if(role=="Administrator")
{}
else if(...)// ... }

I ended up defining my own IActionContraint to solve the route matching problem: 感谢@DavidG 的回答。