0

目前我的控制器看起来像这样:

public class ProductBrandsController : Controller

我在网上读到我可以将[Authorize]装饰器应用于每个动作,也可以应用于整个控制器本身。

有没有办法声明一个自定义装饰器,所以我会这样称呼它:

[Authorize(Roles = "God")]
public class ProductBrandsController : Controller

或者,也许这太麻烦了。我不介意创建一个新的装饰器并这样称呼它:

[Administrator]
public class ProductBrandsController : Controller

//Or 

[ContentManager]
public class ProductBrandsController : Controller

然后我会创建一个自定义类来验证登录的用户是否在角色中。

关于如何解决这个问题的任何建议?

4

1 回答 1

1

当然,您只需要从ActionFilterAttribute.

 public class AdministratorRequiredAttribute : ActionFilterAttribute
 {
      override OnActionExecuting() { }
      override OnActionExecuted() { }
      override OnResultExecuting() { }
      override OnResultExecuted() { }
 }

您可以覆盖该OnActionExecuting方法以插入逻辑以检查用户的身份验证;当它不够时,您可以使用上下文对象将用户重定向到操作方法之外。

于 2011-08-24T21:18:05.617 回答