示例#1
0
        public async Task <IActionResult> Delete(string clientId, string postLogoutUri)
        {
            Client client = await _clientService.Find(clientId);

            if (client == null)
            {
                ViewBag.Message = string.Format("The Auth Central Client with ClientId {0} could not be found.", clientId);
                return(RedirectToAction("Edit"));
            }

            if (client.PostLogoutRedirectUris.Contains(postLogoutUri))
            {
                client.PostLogoutRedirectUris.Remove(postLogoutUri);
                await _clientService.Save(client);
            }

            var model = new ClientChildListContainer <string>()
            {
                ClientId  = client.ClientId,
                ChildList = client.PostLogoutRedirectUris
            };

            model.ChildList.Add("");

            return(View("Edit", model));
        }
示例#2
0
        public async Task <IActionResult> Save(string clientId, string originalPostLogoutUri, string postLogoutUri)
        {
            //TODO: validate??

            Client client = await _clientService.Find(clientId);

            if (client == null)
            {
                ViewBag.Message = string.Format("The Auth Central Client with ClientId {0} could not be found.", clientId);
            }

            // if things have changed
            if (originalPostLogoutUri != postLogoutUri)
            {
                bool saveRequired = false;

                if (!client.PostLogoutRedirectUris.Contains(postLogoutUri) && !String.IsNullOrWhiteSpace(postLogoutUri))
                {
                    var insertAt = client.PostLogoutRedirectUris.IndexOf(originalPostLogoutUri);
                    if (insertAt >= 0)
                    {
                        client.PostLogoutRedirectUris.Insert(insertAt, postLogoutUri);
                    }
                    else
                    {
                        client.PostLogoutRedirectUris.Add(postLogoutUri);
                    }
                    saveRequired = true;
                }

                if (client.PostLogoutRedirectUris.Contains(originalPostLogoutUri))
                {
                    client.PostLogoutRedirectUris.Remove(originalPostLogoutUri);
                    saveRequired = true;
                }

                if (saveRequired)
                {
                    await _clientService.Save(client);
                }
            }

            var model = new ClientChildListContainer <string>()
            {
                ClientId  = client.ClientId,
                ChildList = client.PostLogoutRedirectUris
            };

            // cheating way to include an empty for on the view page
            model.ChildList.Add("");

            return(View("Edit", model));
        }
        public async Task <IActionResult> Edit(string clientId)
        {
            Client client = await _clientService.Find(clientId);

            if (client == null)
            {
                ViewBag.Message = string.Format("The Auth Central Client with ClientId {0} could not be found.", clientId);
                return(RedirectToAction("Edit"));
            }

            var model = new ClientChildListContainer <string>()
            {
                ClientId  = client.ClientId,
                ChildList = client.AllowedCorsOrigins
            };

            model.ChildList.Add("");

            return(View(model));
        }