为什么authorize属性不会被动作覆盖?

时间:2018-06-01 12:02:27

标签: c# asp.net-mvc

我有这个控制器应该只被授权给role = 1但是里面还有一个需要被授权给两个角色的动作,即1和2所以我做的是我已经授权控制器角色1然后重写行动以拥有2个角色,但这不起作用,它仍然只能由角色1访问。

为什么?

[Authorize(Roles = "1")]
public class ServicesController : BaseController
{
    // GET: Services
    [OverrideAuthorization]
    [Authorize(Roles="1,2")]
    [HttpGet]
    public JsonResult GetServices()
    {
        return Json(ServicesRepository.SelectServices(), JsonRequestBehavior.AllowGet);
    }
}

1 个答案:

答案 0 :(得分:0)

您的代码是正确的。我猜你也需要覆盖另一个动作,因为你似乎没有覆盖最初返回视图的动作。

覆盖执行控制器时调用的操作。