Exemple #1
0
        public async Task AddRedirectUrisIfNotExists(string clientId, string postLogoutRedirectUri, params string[] redirectUris)
        {
            var exists = await _securityRepository.Exists <ClientPostLogoutRedirectUri>(u => u.Client.ClientId == clientId && u.Uri == postLogoutRedirectUri);

            if (exists)
            {
                Log(true, nameof(ClientPostLogoutRedirectUri), postLogoutRedirectUri, nameof(Client), clientId);
            }
            else
            {
                Log(false, nameof(ClientPostLogoutRedirectUri), postLogoutRedirectUri, nameof(Client), clientId);
                await _securityRepository.AddPostLogoutRedirectUri(CreatePostLogoutRedirectUri(postLogoutRedirectUri), clientId);
            }

            foreach (var uri in redirectUris)
            {
                exists = await _securityRepository.Exists <ClientRedirectUri>(u => u.Client.ClientId == clientId && u.Uri == uri);

                if (exists)
                {
                    Log(true, nameof(ClientRedirectUri), uri, nameof(Client), clientId);
                }
                else
                {
                    Log(false, nameof(ClientRedirectUri), uri, nameof(Client), clientId);
                    await _securityRepository.AddRedirectUri(CreateRedirectUri(uri), clientId);
                }
            }
        }