C# 为什么操作时未覆盖authorize属性?
我有一个控制器,它应该只授权给role=1,但是它里面还有一个动作需要授权给两个角色,即1和2,所以我所做的是,我已经授权控制器给role 1,然后覆盖该动作,使其有2个角色,但这不起作用,它仍然只能由role 1访问 为什么?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
[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
的源代码添加到示例中。您的代码是正确的。你是如何测试这个的?