asp.net MVC5 - Inyección de dependencia y AuthorizeAttribute

Busqué mucho tiempo una solución para mi problema. Tengo un AuthorizeAttribute personalizado que necesita una dependencia de un "Servicio" que tiene acceso a un DbContext. Lamentablemente, la Inyección de dependencias no funcionó en el AuthorizeAttribute personalizado y siempre fue nula.

Se me ocurrió una solución (para mí) aceptable. ¿Ahora quiero saber si mi solución puede causar un comportamiento imprevisto?

Global.asax.cs

 CustomAuthorizeAttribute.AuthorizeServiceFactory = () => unityContainer.Resolve<AuthorizeService>();

CustomAuthorizeAttribute.cs

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
    public class CustomAuthorizeAttribute : AuthorizeAttribute
    {
        public static Func<AuthorizeService> AuthorizeServiceFactory { get; set; }

        public Privilege Privilege { get; set; }

        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            bool authorized = base.AuthorizeCore(httpContext);
            if (!authorized)
            {
                return false;
            }

            return AuthorizeServiceFactory().AuthorizeCore(httpContext, Privilege);
        }
    }

AuthorizeService.cs

public class AuthorizeService
{
    [Dependency]
    public UserService UserService { private get; set; }

    public bool AuthorizeCore(HttpContextBase httpContext, Privilege privilege)
    {
        ApplicationUser user = UserService.FindByName(httpContext.User.Identity.Name);
        return UserService.UserHasPrivilege(user.Id, privilege.ToString());
    }
}

¿Es esta una solución aceptable? ¿Tendré problemas desagradables en el futuro o tal vez haya una mejor manera de usar la Inyección de dependencias en un AuthorizeAttribute personalizado?

Respuestas a la pregunta(3)

Su respuesta a la pregunta