Атрибут, наследующий от AuthorizeAttribute, не работает

В настоящее время я пытаюсь реализовать безопасность в новом приложении ASP MVC 5 на основе пользовательских ролей. Цель состоит в том, чтобы запретить пользователям доступ к определенным контроллерам или методам контроллеров, если у них нет определенной роли (или выше). Основываясь на том, что я прочитал по этому вопросу, я создал атрибут, который наследует AuthorizeAttribute, который выглядит следующим образом (MyAppRole - это перечисление, кстати):

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class AuthorizeRoleOrSuperiorAttribute : AuthorizeAttribute
{
    private MyAppRole _authorizedRole;

    public AuthorizeRoleOrSuperiorAttribute(MyAppRole authorizedRole)
    { //Breakpoint here
        _authorizedRole = authorizedRole;
    }

    public override void OnAuthorization(HttpActionContext actionContext)
    { //Breakpoint here
        base.OnAuthorization(actionContext);

        if (!UserInfo.GetUserRoles().Any(r => (int)r >= (int)_authorizedRole))
            throw new UnauthorizedAccessException(ErrorsModule.RoleMissing);
    }
}

И я называю это так на методах и / или контроллерах:

[AuthorizeRoleOrSuperior(MyAppRole.Admin)]
public class MyController : Controller
{
    [AuthorizeRoleOrSuperior(MyAppRole.Admin)]
    public ViewResult Index()
    {
        [...]
    }

    [...]
}

Я поместил точку останова в конструктор и метод OnAuthorization, но, когда я запускаю приложение и вызываю соответствующий контроллер или метод, я никогда не нажимаю ни на один из них, и действие вызывается, даже если я даже не вошел в систему.

Примечание: AuthorizeAttribute работает правильно, когда я его использую.

Любая идея, что может помешать атрибуту работать и фильтровать доступ?

Ответы на вопрос(1)

Ваш ответ на вопрос