【发布时间】: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