public static void Register(HttpConfiguration config) { config.SetCorsPolicyProviderFactory(new CorsPolicyFactory()); config.EnableCors(); var formart = config.Formatters; formart.Remove(formart.XmlFormatter); var json = config.Formatters.JsonFormatter.SerializerSettings; json.Formatting = Formatting.Indented; json.ContractResolver = new CamelCasePropertyNamesContractResolver(); formart.JsonFormatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects; formart.JsonFormatter.SerializerSettings.MetadataPropertyHandling = MetadataPropertyHandling.Ignore; // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }
public static void Register(HttpConfiguration config) { config.EnableCors(); // Web API routes config.EnableSystemDiagnosticsTracing().IsVerbose = true; config.MapHttpAttributeRoutes(); var defaultPolicyProvider = new EnableCorsAttribute("*", "*", "*"); defaultPolicyProvider.SupportsCredentials = true; //important if you are sending cookies AttributeBasedPolicyProviderFactory policyProviderFactory = new AttributeBasedPolicyProviderFactory(); policyProviderFactory.DefaultPolicyProvider = defaultPolicyProvider; config.SetCorsPolicyProviderFactory(policyProviderFactory); config.Routes.MapHttpRoute( name: "BatchApi", routeTemplate: "api/batch", defaults: null, constraints: null, handler: new DefaultHttpBatchHandler(GlobalConfiguration.DefaultServer)); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional }, constraints: null, handler: new CorsMessageHandler(config) { InnerHandler = new HttpControllerDispatcher(config) } ); }
public static void Register(HttpConfiguration config) { // Web API configuration and services // This handles CORS requests globally. config.SetCorsPolicyProviderFactory(new CorsPolicyFactory()); config.EnableCors(); // Configure Web API to use only bearer token authentication. config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); config.Routes.MapHttpRoute( "PostBlobUpload", "blobs/upload", new { controller = "Blobs", action = "PostBlobUpload" }, new { httpMethod = new HttpMethodConstraint("POST") } ); config.Routes.MapHttpRoute( "GetBlobDownload", "blobs/{blobId}/download", new { controller = "Blobs", action = "GetBlobDownload" }, new { httpMethod = new HttpMethodConstraint("GET") } ); }
/// <summary> /// Enables the support for CORS. /// </summary> /// <param name="httpConfiguration">The <see cref="HttpConfiguration"/>.</param> /// <param name="defaultPolicyProvider">The default <see cref="ICorsPolicyProvider"/>.</param> /// <exception cref="System.ArgumentNullException">httpConfiguration</exception> public static void EnableCors(this HttpConfiguration httpConfiguration, ICorsPolicyProvider defaultPolicyProvider) { if (httpConfiguration == null) { throw new ArgumentNullException("httpConfiguration"); } if (defaultPolicyProvider != null) { AttributeBasedPolicyProviderFactory policyProviderFactory = new AttributeBasedPolicyProviderFactory(); policyProviderFactory.DefaultPolicyProvider = defaultPolicyProvider; httpConfiguration.SetCorsPolicyProviderFactory(policyProviderFactory); } AddCorsMessageHandler(httpConfiguration); }
public static void Register(HttpConfiguration config) { // Web API configuration and services // Configure Web API to use only bearer token authentication. //var corsAttribut = new EnableCorsAttribute("*", "*", "*"); config.SetCorsPolicyProviderFactory(new CorsPolicyFactory()); config.EnableCors(); config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }
public static void Register(HttpConfiguration config) { // Web API configuration and services var formatters = GlobalConfiguration.Configuration.Formatters; var jsonFormatter = formatters.JsonFormatter; var settings = jsonFormatter.SerializerSettings; jsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None; config.Formatters.Remove(config.Formatters.XmlFormatter); settings.Formatting = Newtonsoft.Json.Formatting.Indented; settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); config.SetCorsPolicyProviderFactory(new CorsPolicyFactory()); config.EnableCors(); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }
public static void Register(HttpConfiguration configuration, Container container) { container.RegisterSingleton(configuration); container.RegisterWebApiControllers(configuration); configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container); configuration.MapHttpAttributeRoutes(); configuration.SetCorsPolicyProviderFactory(new CorsPolicyProviderFactory(container)); var serializerSettings = configuration.Formatters.JsonFormatter.SerializerSettings; serializerSettings.Formatting = Formatting.Indented; serializerSettings.NullValueHandling = NullValueHandling.Ignore; serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); serializerSettings.Converters.Add(new StringEnumConverter()); configuration.Formatters.Remove(configuration.Formatters.XmlFormatter); // Note that the timing handle should be the first handler in the chain so that it can time the entire lifecycle. configuration.MessageHandlers.Insert(0, new DelegatingHandlerProxy<TimingHandler>(container)); configuration.MessageHandlers.Insert(1, new DelegatingHandlerProxy<ServerCompressionHandler>(container)); configuration.MessageHandlers.Add(new DelegatingHandlerProxy<RavenDbHandler>(container)); // Note that the caching handler overwrites the CORS headers if it executes after it, so we have to manually place the CORS // handler first in the chain which is why we do not use configuration.EnableCors() configuration.MessageHandlers.Add(new DelegatingHandlerProxy<CorsMessageHandler>(container)); configuration.MessageHandlers.Add(new DelegatingHandlerProxy<CachingHandler>(container)); configuration.MessageHandlers.Add(new DelegatingHandlerProxy<PartialResponseHandler>(container)); configuration.ParameterBindingRules.Insert(0, descriptor => new BodyAndUriParameterBinding(descriptor)); configuration.Filters.Add(new EntityNotFoundExceptionFilter()); configuration.Filters.Add(new EmptyModelActionFilter()); configuration.Filters.Add(new ValidationExceptionFilter()); configuration.Filters.Add(new GenericExceptionFilter()); }
public static void Register(HttpConfiguration config) { //BEGIN ADDED BY JLC //PM> Install-Package Microsoft.AspNet.WebApi.Cors -pre //Enable cross origin requests //See: http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api //See also: http://blogs.msdn.com/b/webdev/archive/2013/07/02/manage-cors-policy-dynamically.aspx //And http://blogs.msdn.com/b/yaohuang1/archive/2013/04/05/try-out-asp.net-web-api-cors-support-using-the-nightly-builds.aspx //var cors = new EnableCorsAttribute("*", "*", "*"); //new MyCorsPolicyAttribute()); //cors.SupportsCredentials = true; //config.EnableCors(cors); config.SetCorsPolicyProviderFactory(new MyCorsPolicyFactory()); config.EnableCors(); //END ADDED BY JLC // Web API configuration and services // Configure Web API to use only bearer token authentication. config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }