Esempio n. 1
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;
            }));
        }
        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;
                    });
        }
        void PerformCorsCheck()
        {
            var ctx = System.Web.HttpContext.Current;

            var httpRequest = new HttpContextRequest(new HttpRequestWrapper(ctx.Request));
            var accessRequest = new CorsAccessRequest(httpRequest);
            if (accessRequest.IsCors)
            {
                var accessResponse = UrlBasedCorsConfiguration.Configuration.Engine.CheckAccess(accessRequest);
                if (accessResponse != null)
                {
                    var response = ctx.Response;
                    var httpResponse = new HttpContextResponse(new HttpResponseWrapper(response));
                    accessResponse.WriteResponse(httpResponse);
                }

                if (accessRequest.IsCorsPreflight)
                {
                    ctx.Response.StatusCode = 200;
                    ctx.Response.End();
                }
            }
        }
Esempio n. 4
0
        protected virtual void PerformCorsCheck()
        {
            var ctx = System.Web.HttpContext.Current;

            var httpRequest   = new MvcRequest(new HttpRequestWrapper(ctx.Request));
            var accessRequest = new CorsAccessRequest(httpRequest);

            if (accessRequest.IsCors)
            {
                var accessResponse = MvcCorsConfiguration.Configuration.Engine.CheckAccess(accessRequest);
                if (accessResponse != null)
                {
                    var response     = ctx.Response;
                    var httpResponse = new HttpContextResponse(new HttpResponseWrapper(response));
                    accessResponse.WriteResponse(httpResponse);
                }

                if (accessRequest.IsCorsPreflight)
                {
                    ctx.Response.StatusCode = 200;
                    ctx.Response.End();
                }
            }
        }