public static void UseCors(this IMiddlewareSupport middleware, Action <CorsOptions> setOptions = null) { middleware.Use(async(context, next) => { context.Response.SetCorsHeaders(CorsOptions.GetCorsOptions(setOptions)); await next(context); }); }
public static CorsOptions GetCorsOptions(Action <CorsOptions> setOptions) { if (setOptions == null) { return(Default()); } var corsOptions = new CorsOptions(); setOptions(corsOptions); return(corsOptions); }
public static void EnableCorsOptionsRequestHandling(this IRouteConfigurator router, Action <CorsOptions> setOptions = null) { router.Options("cors_preflight", "*", context => { return(Task.Run(() => context.Response.SetCorsHeaders(CorsOptions.GetCorsOptions(setOptions)))); }); router.Options("cors_preflight", "/", context => { return(Task.Run(() => context.Response.SetCorsHeaders(CorsOptions.GetCorsOptions(setOptions)))); }); }
public static void SetCorsHeaders(this IResponse response, CorsOptions corsOptions) { if (corsOptions.AllowOrigin.IsSet) { response.SetHeader("Access-Control-Allow-Origin", corsOptions.AllowOrigin.Values); } if (corsOptions.AllowCredentials.IsSet) { response.SetHeader("Access-Control-Allow-Credentials", corsOptions.AllowCredentials.Values); } if (corsOptions.AllowMethods.IsSet) { response.SetHeader("Access-Control-Allow-Methods", corsOptions.AllowMethods.Values); } if (corsOptions.AllowHeaders.IsSet) { response.SetHeader("Access-Control-Allow-Headers", corsOptions.AllowHeaders.Values); } }