public async Task <ActionResult> LoginMobile(LoginMobileViewModel model) { //if (!ModelState.IsValid) //{ // return View(model); //} var errores = new List <string>(); // errores = ModelState.Values.SelectMany(x => x.Errors.Select(t => t.ErrorMessage)).ToList(); if (string.IsNullOrEmpty(model.user)) { errores.Add("Debe completar el Nombre"); } if (string.IsNullOrEmpty(model.password)) { errores.Add("Debe completar el Password"); } if (errores.Count > 0) { return(Json(new { Result = "", Error = errores }, JsonRequestBehavior.AllowGet)); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.user, model.password, true, shouldLockout : false); switch (result) { case SignInStatus.Success: { var db = new ApplicationDbContext(); Usuario usu = new Repositorio <Usuario>(db).TraerTodos().Where(x => x.ApplicationUser.Email == model.user).FirstOrDefault(); model.Id = new Guid(usu.ApplicationUser.Id); model.NickName = usu.NickName; model.token = Guid.NewGuid().ToString(); usu.Token = model.token; new Repositorio <Usuario>(db).Modificar(usu); return(Json(new { Result = model, Error = "" }, JsonRequestBehavior.AllowGet)); } case SignInStatus.LockedOut: errores.Add("Invalid login attempt."); return(Json(new { Result = "", Error = errores }, JsonRequestBehavior.AllowGet)); //case SignInStatus.RequiresVerification: // return RedirectToAction("SendCode", new { ReturnUrl = "", RememberMe = true }); case SignInStatus.Failure: default: errores.Add("Invalid login attempt."); return(Json(new { Result = "", Error = errores }, JsonRequestBehavior.AllowGet)); } }
public async Task <ActionResult> LoginMobile(LoginMobileViewModel model, string returnUrl) { var error = new List <object>(); var db = new ApplicationDbContext(); //var test = db.Usuarios.Where(x => x.UsuarioApp.Id == userName); //var test2 = db.Usuarios.Where(x => x.UsuarioApp.PasswordHash.Equals(model.Password)); if (!ModelState.IsValid) { if (string.IsNullOrWhiteSpace(model.Email)) { error.Add(new { Input = "Email", Msg = "El campo mail esta vacio" }); } if (string.IsNullOrWhiteSpace(model.Password)) { error.Add(new { Input = "Password", Msg = "El campo password esta vacio" }); } //if () // error.Add(new { Input = "Password", Msg = "El campo password esta vacio" }); return(Json(new { Result = "", Error = error }, JsonRequestBehavior.AllowGet)); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : false); switch (result) { case SignInStatus.Success: model.isMobile = true; if (model.isMobile == true) { var userId = User.Identity.GetUserId(); var usuarioData = db.Usuarios.FirstOrDefault(pr => pr.UsuarioApp.Id == userId && pr.UsuarioApp.Email == model.Email); model.Token = Guid.NewGuid().ToString(); var Response = new { Respuesta = "OK", UsuarioId = userId, Nick = usuarioData.NickName, Recordar = model.RememberMe, Token = usuarioData.Token }; return(Json(new { Response, Error = "" })); } 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: if (model.isMobile == true) { var userId = User.Identity.GetUserId(); var usuarioData = db.Usuarios.FirstOrDefault(pr => pr.UsuarioApp.Id == userId); if (string.IsNullOrWhiteSpace(model.Email)) { error.Add(new { Input = "Email", Msg = "Debe ingresar un Email valido" }); } if (string.IsNullOrWhiteSpace(model.Password)) { error.Add(new { Input = "Password", Msg = "Debe ingresar un password valido" }); } else { error.Add(new { Input = "Usuario", Msg = "Usuario/ContraseƱa invalido" }); } return(Json(new { Result = "", Error = error }, JsonRequestBehavior.AllowGet)); } ModelState.AddModelError("", "Invalid login attempt."); return(View(model)); } }