Files
Examples/GerstITS.Examples.Api/Common/Configurations/WebApiConfiguration.Server.CorsPolicy.cs
2022-12-22 15:29:53 +01:00

31 lines
1.2 KiB
C#

using GerstITS.System.Configurations;
using GerstITS.Web.Api.Builder;
using Microsoft.Extensions.Configuration;
namespace GerstITS.Examples.Api.Configurations;
internal sealed class CorsPolicyConfiguration : ICorsPolicy, GerstITS.System.Configurations.IConfiguration
{
#region Constructors
public CorsPolicyConfiguration(string parentPrefix, Microsoft.Extensions.Configuration.IConfiguration configuration)
{
var prefix = $"{parentPrefix}:{this.ToConfigurationPrefix()}";
AllowCredentials = configuration.GetValue<bool>($"{prefix}:{nameof(AllowCredentials)}", false);
AllowedOrigins = configuration.GetSection($"{prefix}:{nameof(AllowedOrigins)}").Get<string[]>() ?? new string[0];
AllowedHeaders = configuration.GetSection($"{prefix}:{nameof(AllowedHeaders)}").Get<string[]>() ?? new string[0];
AllowedMethods = configuration.GetSection($"{prefix}:{nameof(AllowedMethods)}").Get<string[]>() ?? new string[0];
}
#endregion
#region ICorsPolicy
public bool AllowCredentials { get; }
public string[] AllowedOrigins { get; set; }
public string[] AllowedHeaders { get; set; }
public string[] AllowedMethods { get; set; }
#endregion
}