Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
 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();
         }
     }
 }