Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么操作时未覆盖authorize属性?_C#_Asp.net Mvc - Fatal编程技术网

C# 为什么操作时未覆盖authorize属性?

C# 为什么操作时未覆盖authorize属性?,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个控制器,它应该只授权给role=1,但是它里面还有一个动作需要授权给两个角色,即1和2,所以我所做的是,我已经授权控制器给role 1,然后覆盖该动作,使其有2个角色,但这不起作用,它仍然只能由role 1访问 为什么? [Authorize(Roles = "1")] public class ServicesController : BaseController { // GET: Services [OverrideAuthorization] [Autho

我有一个控制器,它应该只授权给role=1,但是它里面还有一个动作需要授权给两个角色,即1和2,所以我所做的是,我已经授权控制器给role 1,然后覆盖该动作,使其有2个角色,但这不起作用,它仍然只能由role 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,2”,并且除此操作外,所有操作只能访问“1”@TJWolschon,这将使角色2可以访问它。角色2只需要访问1action@Stacky请将
BaseController
的源代码添加到示例中。您的代码是正确的。你是如何测试这个的?