From f253f6c91390719e54bf6bd52e56e3300e167a59 Mon Sep 17 00:00:00 2001 From: Mike R <37841453+omon77@users.noreply.github.com> Date: Thu, 31 Oct 2024 19:51:18 -0400 Subject: [PATCH] Post-logout redirect support --- .../Configuration/AccountOptions.cs | 2 +- .../Controllers/AccountController.cs | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/Skoruba.Duende.IdentityServer.STS.Identity/Configuration/AccountOptions.cs b/src/Skoruba.Duende.IdentityServer.STS.Identity/Configuration/AccountOptions.cs index 6d9d9d0b2..db1e7f464 100644 --- a/src/Skoruba.Duende.IdentityServer.STS.Identity/Configuration/AccountOptions.cs +++ b/src/Skoruba.Duende.IdentityServer.STS.Identity/Configuration/AccountOptions.cs @@ -15,7 +15,7 @@ public class AccountOptions public static TimeSpan RememberMeLoginDuration = TimeSpan.FromDays(30); public static bool ShowLogoutPrompt = true; - public static bool AutomaticRedirectAfterSignOut = false; + public static bool AutomaticRedirectAfterSignOut = true; public static string InvalidCredentialsErrorMessage = "Invalid username or password"; } diff --git a/src/Skoruba.Duende.IdentityServer.STS.Identity/Controllers/AccountController.cs b/src/Skoruba.Duende.IdentityServer.STS.Identity/Controllers/AccountController.cs index fe3795057..4af868b27 100644 --- a/src/Skoruba.Duende.IdentityServer.STS.Identity/Controllers/AccountController.cs +++ b/src/Skoruba.Duende.IdentityServer.STS.Identity/Controllers/AccountController.cs @@ -4,12 +4,6 @@ // Original file: https://github.com/DuendeSoftware/IdentityServer.Quickstart.UI // Modified by Jan Škoruba -using System; -using System.Linq; -using System.Security.Claims; -using System.Text; -using System.Text.Encodings.Web; -using System.Threading.Tasks; using Duende.IdentityServer; using Duende.IdentityServer.Events; using Duende.IdentityServer.Extensions; @@ -29,6 +23,12 @@ using Skoruba.Duende.IdentityServer.STS.Identity.Helpers; using Skoruba.Duende.IdentityServer.STS.Identity.Helpers.Localization; using Skoruba.Duende.IdentityServer.STS.Identity.ViewModels.Account; +using System; +using System.Linq; +using System.Security.Claims; +using System.Text; +using System.Text.Encodings.Web; +using System.Threading.Tasks; namespace Skoruba.Duende.IdentityServer.STS.Identity.Controllers { @@ -249,6 +249,12 @@ public async Task Logout(LogoutInputModel model) return SignOut(new AuthenticationProperties { RedirectUri = url }, vm.ExternalAuthenticationScheme); } + if (vm.AutomaticRedirectAfterSignOut && !string.IsNullOrWhiteSpace(vm.PostLogoutRedirectUri)) + { + // Redirect to PostLogoutRedirectUri + return Redirect(vm.PostLogoutRedirectUri); + } + return View("LoggedOut", vm); }