我有一个需要全局授权的管理信息中心项目,我在
上进行了设置 public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new AuthorizeAttribute());
}
该代码使我的所有控制器都被授权..并且有一个控制器具有[AllowAnonymous]属性..但是我突然改变请求,需要对此控制器上的操作进行授权..
[AllowAnonymous]
public class AuthController : Controller
{
[Authorize(Roles = "Admin")]
public ActionResult BumbaSection()
{
return View();
}
}
这不起作用,我仍然可以访问这个BumbaSection动作..有什么想法吗? 感谢
答案 0 :(得分:3)
在我查看授权代码后,这部分代码使授权无效:
public virtual void OnAuthorization(AuthorizationContext filterContext)
{
//code here
if (filterContext.ActionDescriptor.IsDefined(typeof (AllowAnonymousAttribute), true) || filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof (AllowAnonymousAttribute), true))
return;
//code here
}
在authorize属性类中覆盖这段代码,我的代码开始工作..也许这对我有些问题的人有用