CorsInstaller.cs 930 Bytes
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Rcs.Domain.Settings;

namespace Rcs.Infrastructure.Installs
{
    public static class CorsInstaller
    {
        public static string DefaultCorsPolicyName = "AllowSpecificOrigins";
        public static void InstallCors(this WebApplicationBuilder builder)
        {
            var cors = builder.Configuration.GetSection(nameof(AppSettings)).Get<AppSettings>()!.Cors;

            builder.Services.AddCors(options =>
            {
                options.AddPolicy(DefaultCorsPolicyName,
                    corsBuilder =>
                    {
                        corsBuilder.WithOrigins(cors.AllowedOrigins)
                         .WithMethods(cors.AllowedMethods)
                         .WithHeaders(cors.AllowedHeaders);
                    });
            });

        }
    }
}