Esempio n. 1
0
        public async Task <IActionResult> OnPost([FromForm] InputUsernameModel Input, string returnUrl = null)
        {
            if (ModelState.IsValid)
            {
                TempData["RememberMe"] = false;

                IdentityUser userTmp = new IdentityUser();
                userTmp.UserName = Input.UserName;

                var result = await _signInManager.SignInAsync(userTmp, false);

                if (result.Succeeded)
                {
                    TempData["UserName"] = userTmp.UserName;;
                    return(new PartialViewResult
                    {
                        ViewName = "LoginPassword",
                        ViewData = new ViewDataDictionary <InputPasswordModel>(ViewData, new InputPasswordModel()),
                    });
                }
                if (result.RequiresTwoFactor)
                {
                    _logger.LogInformation("User logged in.");
                    return(new PartialViewResult
                    {
                        ViewName = "./LoginTwoFactor",
                        ViewData = new ViewDataDictionary <InputTwoFactorModel>(ViewData, new InputTwoFactorModel())
                    });
                }
                if (result.IsLockedOut)
                {
                    return(BuildLockoutResult());
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                    return(new PartialViewResult
                    {
                        ViewName = "./LoginUserName",
                        ViewData = new ViewDataDictionary <InputUsernameModel>(ViewData, new InputUsernameModel())
                    });
                }
            }

            // If we got this far, something failed, redisplay form
            //return Page();
            return(new PartialViewResult
            {
                ViewName = "./LoginUserName",
                ViewData = this.ViewData
            });
        }