Home > Mobile >  Why result.Succeeded return failed in ASP Identity
Why result.Succeeded return failed in ASP Identity

Time:05-03

When trying to add the ability to add a name during registration, an error occurred when logging into the account. When I register, the login is successful, but as soon as I log out and try to log in again, the login error

Changes made to the log file

            var user = CreateUser();
            await _userStore.SetUserNameAsync(user, Input.UserName, CancellationToken.None);
            await _emailStore.SetEmailAsync(user, Input.Email, CancellationToken.None);
            var result = await _userManager.CreateAsync(user, Input.Password);

Here in UserNameAsync the standard value of the email, I will change it to the username

Part when where error

            if (ModelState.IsValid)
        {
            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, set lockoutOnFailure: true
            var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
            if (result.Succeeded) //Return failed
            {
                _logger.LogInformation("User logged in.");
                return LocalRedirect(returnUrl);
            }
            if (result.RequiresTwoFactor)
            {
                return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });
            }
            if (result.IsLockedOut)
            {
                _logger.LogWarning("User account locked out.");
                return RedirectToPage("./Lockout");
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                return Page();
            }
        }

CodePudding user response:

You could check the EmailConfirmed Colum if it has a value in your database, If you registed with an e-mail,an e-mail will be sent to you to comfirm.and your error may be caused by it.

You could also try to set as follow in your startup class to avoid the error

services.Configure<IdentityOptions>(options =>
            {
                ....
                options.SignIn.RequireConfirmedAccount = false;
                ....
             });
  • Related