Asp.net mvc 是否可以为所有控制器全局设置[Authorize]属性?
目前,将[Authorize]置于控制器类或特定操作上。是否可以为所有控制器集中设置[Authorize]属性,例如防止未经验证的使用。然后,可以在特定控制器上定义更具体的[Authorize]属性,例如Asp.net mvc 是否可以为所有控制器全局设置[Authorize]属性?,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,目前,将[Authorize]置于控制器类或特定操作上。是否可以为所有控制器集中设置[Authorize]属性,例如防止未经验证的使用。然后,可以在特定控制器上定义更具体的[Authorize]属性,例如 [Authorize(Roles="Admin, SuperUser")] 谢谢。这应该可以(放入应用程序\u启动): 另一个选项是让控制器从基本控制器类继承,并将authorized属性放在那里 然后,可以使用特定角色、用户等覆盖子类上的基本属性 [Authorize] public c
[Authorize(Roles="Admin, SuperUser")]
谢谢。这应该可以(放入应用程序\u启动):
另一个选项是让控制器从基本控制器类继承,并将authorized属性放在那里 然后,可以使用特定角色、用户等覆盖子类上的基本属性
[Authorize]
public class BaseController : Controller{}
public class ChildController: BaseController{}
[Authorize(Role = "Role A")]
public class AnotherChildController: BaseController{}
你考虑过使用动作过滤器吗?谢谢。一旦在全球范围内应用,将[Authorize(Roles=“User”)应用于特定操作会产生什么影响。它会覆盖它还是将授权扩展到“Admin”、“SuperUser”、“User”?您必须定义AuthorizeAttribute?仅放置此项将返回错误消息。非常感谢。若要对REST API执行相同操作,请将此项添加到WebApiConfig.Register():config.Filters.add(new AuthorizeAttribute(){Roles=“Admin,SuperUser”});谢谢。这是一个有趣的回答。可能有“AdminController”,“UserController”作为子控制器。添加额外的[Authorize(Roles=“Role B”)]。这会覆盖或扩展吗?我从同一个链接中发现了FluentSecurity!!:)仅供参考,您的解决方案将遇到需要身份验证的登录问题。请参阅上面的我的链接以获得解决方案。考虑过这种方法后,虽然可以做到,但感觉有点“困难”"更改控制器代码文件中的控制器名称。我必须承认,我喜欢从一个文件控制控制器的FluentSecurity方法,而且控制器仍然是普通的旧基控制器。这似乎更糟。它不那么简单,并且有可能有人忘记从基类继承而不是从for继承正在添加[Authorize]属性。
[Authorize]
public class BaseController : Controller{}
public class ChildController: BaseController{}
[Authorize(Role = "Role A")]
public class AnotherChildController: BaseController{}