示例#1
0
        private async Task <OpenIdClientSettings> GetClientSettingsAsync()
        {
            var settings = await _clientService.GetSettingsAsync();

            if ((await _clientService.ValidateSettingsAsync(settings)).Any(result => result != ValidationResult.Success))
            {
                _logger.LogWarning("The OpenID Connect module is not correctly configured.");

                return(null);
            }

            return(settings);
        }
        public async Task ExecuteAsync(RecipeExecutionContext context)
        {
            if (!string.Equals(context.Name, "OpenIdClientSettings", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            var model = context.Step.ToObject <OpenIdClientSettingsStepModel>();

            var settings = await _clientService.GetSettingsAsync();

            settings.Scopes                = model.Scopes.Split(' ', ',');
            settings.Authority             = !string.IsNullOrEmpty(model.Authority) ? new Uri(model.Authority, UriKind.Absolute) : null;
            settings.CallbackPath          = model.CallbackPath;
            settings.ClientId              = model.ClientId;
            settings.ClientSecret          = model.ClientSecret;
            settings.DisplayName           = model.DisplayName;
            settings.ResponseMode          = model.ResponseMode;
            settings.ResponseType          = model.ResponseType;
            settings.SignedOutCallbackPath = model.SignedOutCallbackPath;
            settings.SignedOutRedirectUri  = model.SignedOutRedirectUri;

            await _clientService.UpdateSettingsAsync(settings);
        }