private async Task <IActionResult> LogoutResponse(LoginUpParty loginUpParty, LoginUpSequenceData sequenceData, LogoutChoice logoutChoice, SessionLoginUpPartyCookie session = null) { if (logoutChoice == LogoutChoice.Logout) { await oauthRefreshTokenGrantLogic.DeleteRefreshTokenGrantsAsync(sequenceData.SessionId); if (loginUpParty.DisableSingleLogout) { await sequenceLogic.RemoveSequenceDataAsync <LoginUpSequenceData>(); return(await LogoutDoneAsync(loginUpParty, sequenceData)); } else { (var doSingleLogout, var singleLogoutSequenceData) = await singleLogoutDownLogic.InitializeSingleLogoutAsync(new UpPartyLink { Name = loginUpParty.Name, Type = loginUpParty.Type }, sequenceData.DownPartyLink, session?.DownPartyLinks, session?.Claims); if (doSingleLogout) { return(await singleLogoutDownLogic.StartSingleLogoutAsync(singleLogoutSequenceData)); } else { await sequenceLogic.RemoveSequenceDataAsync <LoginUpSequenceData>(); return(await LogoutDoneAsync(loginUpParty, sequenceData)); } } } else if (logoutChoice == LogoutChoice.KeepMeLoggedIn) { await sequenceLogic.RemoveSequenceDataAsync <LoginUpSequenceData>(); if (sequenceData.PostLogoutRedirect) { return(await logoutUpLogic.LogoutResponseAsync(sequenceData)); } else { logger.ScopeTrace("Show logged in dialog."); return(View("LoggedIn", new LoggedInViewModel { CssStyle = loginUpParty.CssStyle })); } } else { throw new NotImplementedException(); } }
private async Task <IActionResult> LogoutResponse(LoginUpParty loginUpParty, string sessionId, bool postLogoutRedirect, LogoutChoice logoutChoice) { if (postLogoutRedirect) { return(await logoutUpLogic.LogoutResponseAsync(sessionId)); } else { if (logoutChoice == LogoutChoice.Logout) { logger.ScopeTrace("Show logged out dialog."); return(View("loggedOut", new LoggedOutViewModel { CssStyle = loginUpParty.CssStyle })); } else if (logoutChoice == LogoutChoice.KeepMeLoggedIn) { logger.ScopeTrace("Show logged in dialog."); return(View("LoggedIn", new LoggedInViewModel { CssStyle = loginUpParty.CssStyle })); } else { throw new NotImplementedException(); } } }