protected override bool IsAuthorized(HttpActionContext actionContext)
        {
            var actions = new List <Claim>();

            var action = ActionFromAttribute();

            if (action != null)
            {
                actions.Add(action);
            }

            actions.Add(actionContext.ActionFromController());

            var resources    = new List <Claim>();
            var resourceList = ResourcesFromAttribute();

            if (resourceList != null)
            {
                resources.AddRange(resourceList);
            }
            resources.AddRange(actionContext.ResourceFromController());

            // filter "controller" since we're already adding it explicitly in the above code
            var routeClaims = actionContext.ResourcesFromRouteParameters().Where(x => x.Type != "controller");

            resources.AddRange(routeClaims);

            return(CheckAccess(actionContext.Request, actions.ToArray(), resources.Distinct(new ClaimComparer()).ToArray()));
        }