【问题标题】:.Net Core Web API equal paths for different roles.Net Core Web API 不同角色的相同路径
【发布时间】:2018-02-20 11:43:21
【问题描述】:

我正在尝试使用相同路径但针对不同类型的用户的多条路线:

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

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

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

【问题讨论】:

  • 你能不能有一个单一的路由允许所有人,然后重定向到两个不同的路由之一(一个用于管理员,一个用于主管)?
  • 这就是我要避免的:)
  • 这是最简单的选择,否则你需要创建一个拦截器,可能是一个动作约束(see here)
  • 如果用户同时拥有这两个角色怎么办?
  • @DavidG 这正是我想要的。谢谢

标签: c# .net-core asp.net-mvc-routing


【解决方案1】:
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2021-04-22
    • 2020-09-24
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    相关资源
    最近更新 更多