public async Task <IActionResult> Index(LoginViewModel viewModel, CancellationToken cancellationToken) { viewModel.Check(ModelState); if (!ModelState.IsValid) { return(View(viewModel)); } try { var user = await _passwordSamlAuthService.Authenticate(viewModel.Login, viewModel.Password, cancellationToken); await Authenticate(Constants.AMR, user, cancellationToken, viewModel.RememberLogin); var url = $"{Request.GetAbsoluteUriWithVirtualPath()}/{SimpleIdServer.Saml.Constants.RouteNames.SingleSignOn}/Login?SAMLRequest={HttpUtility.UrlEncode(viewModel.Parameter.SAMLRequest)}&RelayState={HttpUtility.UrlEncode(viewModel.Parameter.RelayState)}"; return(Redirect(url)); } catch (BaseUIException ex) { ModelState.AddModelError(ex.Code, ex.Code); return(View(viewModel)); } }