如何授权一组控制器而不在每个控制器上放置注释?

Tra*_*s J 8 asp.net-mvc controller authorize authorize-attribute asp.net-mvc-3

我有一组控制器,每个控制器用于每种授权类型.例如,A类授权将拥有一组控制器,每个控制器都需要A类授权.有没有办法将一个[Authorize(Role="Class A")]属性放在某个适用于每个控制器的地方,而不必用相同的属性装饰每个控制器?

gan*_*dil 11

您可以初始化从基本控制器派生的控制器.即将您的属性放在控制器基类上,并确保每个控制器都派生自基类.

[Authorize(Role="Class A")]
public class CustomBaseController : Controller{}

public class AController: CustomBaseController{}

public class BController: CustomBaseController{}
Run Code Online (Sandbox Code Playgroud)

  • 是的,但使用基本控制器是初始化和检查所有控制器的某些数据的最佳实践.也许您想使用自定义Authorize属性.还可以轻松地在单个控制器上对"自定义授权"属性进行更改. (2认同)