protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var httpRequest = new WebApiHttpRequest(request, httpConfiguration);
            var accessRequest = new CorsAccessRequest(httpRequest);

            Task<HttpResponseMessage> task = accessRequest.IsCorsPreflight ?
                CreateCorsPreflightTask(request, cancellationToken) :
                CreateCorsSimpleTask(request, cancellationToken);

            return task.ContinueWith<HttpResponseMessage>(
                    innerTask =>
                    {
                        var response = innerTask.Result;
                        var accessResponse = corsConfiguration.Engine.CheckAccess(accessRequest);
                        if (accessResponse != null)
                        {
                            var httpResponse = new WebApiHttpResponse(response);
                            accessResponse.WriteResponse(httpResponse);
                        }
                        return response;
                    });
        }
Exemple #2
0
        protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var httpRequest   = new WebApiHttpRequest(request, httpConfiguration);
            var accessRequest = new CorsAccessRequest(httpRequest);

            Task <HttpResponseMessage> task = accessRequest.IsCorsPreflight ?
                                              CreateCorsPreflightTask(request, cancellationToken) :
                                              CreateCorsSimpleTask(request, cancellationToken);

            return(task.ContinueWith <HttpResponseMessage>(
                       innerTask =>
            {
                var response = innerTask.Result;
                var accessResponse = corsConfiguration.Engine.CheckAccess(accessRequest);
                if (accessResponse != null)
                {
                    var httpResponse = new WebApiHttpResponse(response);
                    accessResponse.WriteResponse(httpResponse);
                }
                return response;
            }));
        }