可以为所有控制器全局设置[authorization]属性吗?



目前可以将[Authorize]放在控制器类或特定操作上。是否有可能为所有控制器集中设置[Authorize]属性,比如防止未经身份验证的使用?然后可以在特定控制器上定义更具体的[authorization]属性,例如

[Authorize(Roles="Admin, SuperUser")]

谢谢。

这应该可以工作(放在Application_Start中):

GlobalFilters.Filters.Add(new AuthorizeAttribute() { Roles = "Admin, SuperUser" });

另一种选择是从基控制器类继承控制器,并在那里放置AuthorizeAttribute。

看看这个答案

你可以用特定的role, Users等覆盖子类上的AuthorizeAttribute基。

[Authorize]
public class BaseController : Controller{}
public class ChildController: BaseController{}
[Authorize(Role = "Role A")]
public class AnotherChildController: BaseController{}

最新更新