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 void EnableCors_AddsCorsPolicyProvider() { HttpConfiguration config = new HttpConfiguration(); config.MessageHandlers.Clear(); EnableCorsAttribute policyProvider = new EnableCorsAttribute(); config.EnableCors(policyProvider); config.Initializer(config); ICorsPolicyProviderFactory providerFactory = config.GetCorsPolicyProviderFactory(); AttributeBasedPolicyProviderFactory attributeProviderFactory = Assert.IsType <AttributeBasedPolicyProviderFactory>(providerFactory); Assert.Same(policyProvider, attributeProviderFactory.DefaultPolicyProvider); }
/// <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 SupportsCredentialsCorsPolicyProviderFactory(ICorsConfigurationFactory providerFactory, AttributeBasedPolicyProviderFactory attributeBasedPolicyProviderFactory) : base(providerFactory, attributeBasedPolicyProviderFactory) { }