Files
Examples/GerstITS.Examples.Api/Common/Configurations/WebApiConfiguration.Server.CorsPolicy.cs
2021-07-15 22:31:00 +02:00

32 lines
1.3 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
}
}