Atributo de filtro de configuración para inyección de dependencia para aceptar parámetros en el constructor

Estoy siguiendo una configuración de atributo de filtro ninject en estapágin.

Para ellos, tienen:

.WithConstructorArgumentFromControllerAttribute<LogAttribute>(
      "logLevel", attribute => attribute.LogLevel);

El segundo parámetro espera unFunc<LogAttribute, object> callback. Su lista de parámetros actual se configura de la siguiente manera:

Log(LogLevel = Level.Debug)

Pero mi atributo de filtro se configura de la siguiente manera:

public class AuthAttribute : FilterAttribute { }

public class AuthFilter : IAuthorizationFilter
{

    private readonly IUserService userService;
    private string[] roles;

    //Stuck on the constructor also. How do I accept params?
    public AuthFilter(IUserService userService, params string[] roles)
    {
        this.userService = userService;
        this.roles = roles;
    }
    public void OnAuthorization(AuthorizationContext filterContext)
    {
        throw new NotImplementedException();
    }
}

De alguna manera esto está mal. Porque quiero que mi filtro se vea así:

[Auth("Admin", "Contrib")]

Mi enlaces:

 kernel.BindFilter<AuthFilter>(FilterScope.Controller, 0)
            .WhenControllerHas<AuthAttribute>()
            .WithConstructorArgumentFromControllerAttribute<AuthAttribute>("roles", /*Stuck here*/)

Respuestas a la pregunta(1)

Su respuesta a la pregunta