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