22 lines
615 B
C#
22 lines
615 B
C#
namespace Tiku.Api.Options;
|
|
|
|
public static class OptionsValidation
|
|
{
|
|
public static bool BeValidCorsOptions(CorsOptions options)
|
|
{
|
|
if (options.AllowCredentials && options.AllowedOrigins.Length == 0)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return options.AllowedOrigins.All(IsHttpOrigin);
|
|
}
|
|
|
|
private static bool IsHttpOrigin(string origin)
|
|
{
|
|
return Uri.TryCreate(origin, UriKind.Absolute, out var uri) &&
|
|
(uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps) &&
|
|
string.IsNullOrEmpty(uri.PathAndQuery.Trim('/'));
|
|
}
|
|
}
|