为MVC3设置自定义授权角色

本文关键字:授权 角色 自定义 设置 MVC3 | 更新日期: 2023-09-27 18:06:38

目前我的控制器是这样的:

public class ProductBrandsController : Controller

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

是否有办法声明一个自定义装饰器,这样我就可以这样调用它:

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

也许这太麻烦了。我不介意创建一个新的装饰器,并像这样命名它:

[Administrator]
public class ProductBrandsController : Controller
//Or 
[ContentManager]
public class ProductBrandsController : Controller

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

有什么建议吗?

为MVC3设置自定义授权角色

当然,您只需要从ActionFilterAttribute派生。

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

你可以覆盖OnActionExecuting方法来插入逻辑来检查你的用户的认证;当这还不够时,您可以使用上下文对象将用户重定向到动作方法之外。