Autorización personalizada MVC 3 y Ninject IoC

Tengo una clase de autorización personalizada que hereda de FilterAttribute e implementa IAuthorizationFilter. Estoy usando la última versión de Ninject w / asp.net MVC 3 support.

El problema que tengo es que estoy usando la inyección del constructor para inyectar un repositorio. Pero cuando se llama a OnAuthorization, el repositorio es nulo. Aquí está el código ...

public class MyAuthorizeAttribute : FilterAttribute, IAuthorizationFilter
    {
        private readonly IMyRepo _MyRepo;

        public MyAuthorizeAttribute() { }
        public MyAuthorizeAttribute(IMyRepo myRepo)
        {
            _MyRepo= myRepo; //this gets initialized
        }


        public void OnAuthorization(AuthorizationContext filterContext)
        {
            _MyRepo.DoStuff(); //<< Null, wtf

        }
    }

Encuadernación de filtro:

Bind<IMyRepo>().To<MyRepo>().InRequestScope();


this.BindFilter<MyAuthorizeAttribute >(System.Web.Mvc.FilterScope.Controller, null).WhenControllerHas<MyAuthorizeAttribute >();

Actualizar Una cosa que noté es que este filtro está en el nivel del controlador. Tengo otros filtros en el ámbito de acción que parecen funcionar correctamente ... ¿podría ser esa la razón?

Actualización 2: He confirmado que si cambio el alcance del filtro a acción, entonces el repositorio está disponible OnAuthorization (no nulo).

Esto funciona a continuación, sin embargo, necesito el alcance del controlador, no la acción.

this.BindFilter<MyAuthorizeAttribute >(System.Web.Mvc.FilterScope.Action, null).WhenActionMethodHas<MyAuthorizeAttribute >();

Respuestas a la pregunta(3)

Su respuesta a la pregunta