es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PasswordSignInAsync() no devuelve ningún resultado.

Mi código devuelve null para el resultado y false para result.success.

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<iactionresult> Login(LoginViewModel model)
{
    if (ModelState.IsValid)
    {
        Microsoft.AspNetCore.Identity.SignInResult result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, true, lockoutOnFailure: false);

        if (result.Succeeded)
        {
            return Redirect("~/AdminArea/UserManager/Index");
        }
        else
        {
            ModelState.AddModelError("Password", "El nombre de usuario o contraseña es incorrecto.");
            return View(model);
        }
    }
    return View(model);
}

Además, necesito establecer el correo electrónico confirmado en falso en mi Startup.cs de la siguiente manera:

services.Configure<identityoptions>(options => options.SignIn.RequireConfirmedEmail = false);

Estoy utilizando ASP.NET Core 3.1 con Identity. Por favor, ayúdame a encontrar el problema. Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema parece estar relacionado con las credenciales de inicio de sesión (nombre de usuario y contraseña) ingresadas por el usuario. El código está verificando correctamente si el ModelState es válido, pero el SignInResult está devolviendo un valor falso para la propiedad Succeeded. Esto significa que el intento de inicio de sesión ha fallado.

    Para investigar más a fondo, puedes verificar el valor del objeto SignInResult y ver si contiene alguna otra información sobre el fallo. Por ejemplo, podría indicar que la cuenta está bloqueada debido a demasiados intentos de inicio de sesión fallidos, o que la cuenta de usuario no existe en el sistema.

    En cuanto a la confirmación por correo electrónico, parece que la has configurado correctamente como falso en el archivo Startup.cs utilizando el objeto IdentityOptions. Esto significa que los usuarios no necesitan confirmar sus direcciones de correo electrónico antes de poder iniciar sesión. Si sigues teniendo problemas con el proceso de inicio de sesión, es posible que desees revisar tu implementación del sistema Identity y asegurarte de que esté correctamente configurada y funcionando según lo previsto.

Comments are closed.