Se ha denegado la autorización al crear API web ASP.NET con validación de clave API

Quiero autorizar mi API web con una clave, pero siempre dice "Se ha denegado la autorización para esta solicitud". El siguiente es el último código que probé.

Esta es la clase de controlador de delegación:

// Message Handler class
public class APIKeyFilter: DelegatingHandler
    {
        // Default API Key
        private const string APIKEY = "b018a9c5105d427127e";
        protected override Task<HttpResponseMessage> SendAsync(
            HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var query = request.RequestUri.ParseQueryString();
            string key = query["key"];
            if (APIKEY!=key)
            {
                var response = new HttpResponseMessage(HttpStatusCode.Forbidden);
                var tsc = new TaskCompletionSource<HttpResponseMessage>();
                tsc.SetResult(response);
                return tsc.Task;
            }
            return base.SendAsync(request, cancellationToken);
        }


    }

Esta es la clase global:

public class Global : HttpApplication
    {
        void Application_Start(object sender, EventArgs e)
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            GlobalConfiguration.Configuration.MessageHandlers.Add(new Filter.APIKeyFilter());
        }
    }

Este es mi controlador api:

    [Authorize]
    public class CategoriesController : ApiController
    {
        private WebAPI2Context db = new WebAPI2Context();

        // GET: api/Categories
        public IQueryable<Category> GetCategories()
        {
            return db.Categories;
        }
    }

¿Hay alguna forma de arreglar esto? Intento buscarlo en Google, todos los resultados que encontré no funcionan para mí.

Respuestas a la pregunta(1)

Su respuesta a la pregunta