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));
            }
        }