public async Task UpdateSettingsAsync(OpenIdClientSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } var container = await _siteService.GetSiteSettingsAsync(); container.Properties[nameof(OpenIdClientSettings)] = JObject.FromObject(settings); await _siteService.UpdateSiteSettingsAsync(container); }
public Task <ImmutableArray <ValidationResult> > ValidateSettingsAsync(OpenIdClientSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } var results = ImmutableArray.CreateBuilder <ValidationResult>(); if (settings.Authority == null) { results.Add(new ValidationResult(T["The authority cannot be null or empty."], new[] { nameof(settings.Authority) })); } else if (!settings.Authority.IsAbsoluteUri || !settings.Authority.IsWellFormedOriginalString()) { results.Add(new ValidationResult(T["The authority must be a valid absolute URL."], new[] { nameof(settings.Authority) })); } else if (!string.IsNullOrEmpty(settings.Authority.Query) || !string.IsNullOrEmpty(settings.Authority.Fragment)) { results.Add(new ValidationResult(T["The authority cannot contain a query string or a fragment."], new[] { nameof(settings.Authority) })); } if (string.IsNullOrEmpty(settings.ResponseType)) { results.Add(new ValidationResult(T["The response type cannot be null or empty."], new[] { nameof(settings.ResponseType) })); } else if (settings.ResponseType != OpenIdConnectResponseType.Code && settings.ResponseType != OpenIdConnectResponseType.CodeIdToken && settings.ResponseType != OpenIdConnectResponseType.CodeIdTokenToken && settings.ResponseType != OpenIdConnectResponseType.CodeToken && settings.ResponseType != OpenIdConnectResponseType.IdToken && settings.ResponseType != OpenIdConnectResponseType.IdTokenToken) { results.Add(new ValidationResult(T["Unknown response type ."], new[] { nameof(settings.ResponseType) })); } if (string.IsNullOrEmpty(settings.ResponseMode)) { results.Add(new ValidationResult(T["The response mode cannot be null or empty."], new[] { nameof(settings.ResponseMode) })); } else if (settings.ResponseMode != OpenIdConnectResponseMode.FormPost && settings.ResponseMode != OpenIdConnectResponseMode.Fragment && settings.ResponseMode != OpenIdConnectResponseMode.Query) { results.Add(new ValidationResult(T["Unknown response mode."], new[] { nameof(settings.ResponseMode) })); } return(Task.FromResult(results.ToImmutable())); }