public async Task <IActionResult> Login() { try { logger.ScopeTrace("Start login."); var sequenceData = await sequenceLogic.GetSequenceDataAsync <LoginUpSequenceData>(remove : false); CheckUpParty(sequenceData); var loginUpParty = await tenantRepository.GetAsync <LoginUpParty>(sequenceData.UpPartyId); var session = await sessionLogic.GetAndUpdateSessionCheckUserAsync(loginUpParty, GetDownPartyLink(loginUpParty, sequenceData)); var validSession = ValidSession(sequenceData, session); if (validSession && sequenceData.LoginAction != LoginAction.RequireLogin) { return(await loginUpLogic.LoginResponseAsync(session.Claims.ToClaimList())); } if (sequenceData.LoginAction == LoginAction.ReadSession) { return(await loginUpLogic.LoginResponseErrorAsync(sequenceData, LoginSequenceError.LoginRequired)); } else { logger.ScopeTrace("Show login dialog."); return(View(nameof(Login), new LoginViewModel { SequenceString = SequenceString, CssStyle = loginUpParty.CssStyle, EnableCancelLogin = loginUpParty.EnableCancelLogin, EnableResetPassword = !loginUpParty.DisableResetPassword, EnableCreateUser = !validSession && loginUpParty.EnableCreateUser, Email = sequenceData.Email.IsNullOrWhiteSpace() ? string.Empty : sequenceData.Email, })); } } catch (Exception ex) { throw new EndpointException($"Login failed, Name '{RouteBinding.UpParty.Name}'.", ex) { RouteBinding = RouteBinding }; } }