示例#1
0
 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);
     });
 }
示例#2
0
        public static CorsOptions GetCorsOptions(Action <CorsOptions> setOptions)
        {
            if (setOptions == null)
            {
                return(Default());
            }

            var corsOptions = new CorsOptions();

            setOptions(corsOptions);
            return(corsOptions);
        }
示例#3
0
        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))));
            });
        }
示例#4
0
        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);
            }
        }