public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
 {
     if (ModelState.IsValid /*&& WebSecurity.Login(model.Email, model.Password, persistCookie: model.RememberMe)*/)
     {
         UsuarioCEN usuarioCEN = new UsuarioCEN();
         if (usuarioCEN.Login(model.Nick, model.Password))
             return RedirectToLocal(returnUrl);
     }
     /*if (!ModelState.IsValid)
     {
         return View(model);
     }
     */
     // No cuenta los errores de inicio de sesión para el bloqueo de la cuenta
     // Para permitir que los errores de contraseña desencadenen el bloqueo de la cuenta, cambie a shouldLockout: true
     var result = await SignInManager.PasswordSignInAsync(model.Nick, model.Password, model.RememberMe, shouldLockout: false);
     switch (result)
     {
         case SignInStatus.Success:
             return RedirectToLocal(returnUrl);
         case SignInStatus.LockedOut:
             return View("Lockout");
         case SignInStatus.RequiresVerification:
             return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
         case SignInStatus.Failure:
         default:
             ModelState.AddModelError("", "Intento de inicio de sesión no válido.");
             return View(model);
     }
 }
Example #2
0
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            //if (ModelState.IsValid && WebSecurity.Login(model.Nick, model.Password, persistCookie: model.RememberMe))
            if (ModelState.IsValid)
            {
                UsuarioCEN cen = new UsuarioCEN();
                int id = cen.Login(model.Nick, model.Nick, model.Password);
                if (id != -1)
                {
                    // Obtengo el nick, para trabajar con él, ya que puede haber logueado con nick o email
                    // Siempre vamos a trabajar con el nick
                    UsuarioEN en = new UsuarioCAD().ReadOIDDefault(id);
                    model.Nick = en.Nick;
                    if(! WebSecurity.Login(model.Nick, model.Password, persistCookie: model.RememberMe))
                    {
                        WebSecurity.CreateUserAndAccount(model.Nick, model.Password);
                        WebSecurity.Login(model.Nick, model.Password, persistCookie: model.RememberMe);
                    }
                    return RedirectToLocal(returnUrl);
                }
            }

            // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario
            ModelState.AddModelError("", "El nombre de usuario o la contraseña especificados son incorrectos.");
            return View(model);
        }