Comment implémenter HttpMessageHandler dans l'API Web?

Dans un ASP.NET 4.5 MVC 4 Web API projet, je veux ajouter un HttpMessageHandler. J'ai changé WebApiConfig classe (dans \App_Satrt\WebApiConfig.cs), comme suit:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional },
            constraints: null,
            handler: new MyCustomizedHttpMessageHandler()
        );
    }
}

Ensuite, j'ai développé MyCustomizedHttpMessageHandler:

public class MyCustomizedHttpMessageHandler : HttpMessageHandler
{
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        IPrincipal principal = new GenericPrincipal(
            new GenericIdentity("myuser"), new string[] { "myrole" });
        Thread.CurrentPrincipal = principal;
        HttpContext.Current.User = principal;

        return Task<HttpResponseMessage>.Factory.StartNew(() => request.CreateResponse());
    }
}

Toutefois, la requête à l'API (disons http://mylocalhost.com/api/values), renvoie toujours le code d'état 200, sans aucune donnée. Je veux dire, il n'arrive jamais à ValuesController.cs " GET ()".

Qu'ai-je manqué? Comment puis-je mettre en œuvre HttpMessageHandler correctement?

PS: Avoir déjà lu: https://stackoverflow.com/a/12030785/538387 , ne m'aide pas.

source d'informationauteur Tohid