Esempio n. 1
0
        public async Task <bool> AddSiteDomainAsync(string siteId, string domainKey, bool isDefault)
        {
            Ensure.NotNull(siteId);
            Ensure.NotNull(domainKey);

            var client = await GetClientAsync(siteId);

            var domainExists = await DomainExistsAsync(domainKey);

            if (domainExists)
            {
                return(false);
            }
            else
            {
                //If IsDefault True, then clear any other default domains
                //as this domain will be the default
                var defaultDomain = await GetDefaultDomainAsync(siteId);

                if (defaultDomain != null)
                {
                    defaultDomain.IsDefault = false;
                    _db.SiteDomains.Update(defaultDomain);
                    _db.SaveChanges();
                }


                // Save the site domain
                var siteDomain = new SiteDomain()
                {
                    SiteId    = siteId,
                    DomainKey = NormalizeDomain(domainKey),
                    IsDefault = isDefault
                };

                _db.SiteDomains.Add(siteDomain);
                await _db.SaveChangesAsync();


                // Register OIDC Redirect Uris
                await _oidcTenantManager.AddUriAsync(
                    client.TenantKey,
                    siteDomain.ToSignInRedirectUri(),
                    Identity.Models.TenantUriType.OidcSignin
                    );

                await _oidcTenantManager.AddUriAsync(
                    client.TenantKey,
                    siteDomain.ToPostLogoutRedirectUri(),
                    Identity.Models.TenantUriType.OidcPostLogout
                    );

                return(true);
            }
        }