[asp.net-mvc-4] ASP.NET MVC 4具有权限代码的自定义授权属性(不含角色)



Answers

这是对prev的修改。 回答。 主要区别在于用户未通过身份验证时,它使用原始的“HandleUnauthorizedRequest”方法重定向到登录页面:

   protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {

        if (filterContext.HttpContext.User.Identity.IsAuthenticated) {

            filterContext.Result = new RedirectToRouteResult(
                        new RouteValueDictionary(
                            new
                            {
                                controller = "Account",
                                action = "Unauthorised"
                            })
                        );
        }
        else
        {
             base.HandleUnauthorizedRequest(filterContext);
        }
    }
Question

我需要在我的MVC 4应用程序中根据用户权限级别(没有角色,仅限分配给用户的CRUD操作级别的权限级别)控制对视图的访问。

示例如下AuthorizeUser将是我的自定义属性ABD我需要像下面一样使用它。

[AuthorizeUser(AccessLevels="Read Invoice, Update Invoice")]
public ActionResult UpdateInvoice(int invoiceId)
{
   // some code...
   return View();
}


[AuthorizeUser(AccessLevels="Create Invoice")]
public ActionResult CreateNewInvoice()
{
  // some code...
  return View();
}


[AuthorizeUser(AccessLevels="Delete Invoice")]
public ActionResult DeleteInvoice(int invoiceId)
{
  // some code...
  return View();
}

这可能吗? 怎么样? 提前致谢...

Chatura




Related