private async Task <bool> PasswordChange(User usuario, string NewPassword) { try { usuario.Password = Cripto.HashPassword(NewPassword); usuario.Token = null; usuario.TokenExpiration = null; _context.Update(usuario); await _context.SaveChangesAsync(); return(true); } catch (Exception) { } return(false); }
public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; User usuario = new User { UserId = model.UserId, Password = Cripto.HashPassword(model.Password), ProfileId = 2, UserActivo = true }; if (ModelState.IsValid) { _context.Add(usuario); await _context.SaveChangesAsync(); return(Redirect(returnUrl)); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <IActionResult> ResetPassword(string Password, string ConfirmPassword, string Token) { var usuario = new User(); usuario = _context.User.Where(u => u.Token == Token).SingleOrDefault(); usuario.Password = Cripto.HashPassword(Password); usuario.Token = null; usuario.TokenExpiration = null; if (ModelState.IsValid) { _context.Update(usuario); await _context.SaveChangesAsync(); TempData["Message"] = "La contraseña fue cambiada correctamente."; return(RedirectToAction("Login", "Account")); } // If we got this far, something failed, redisplay form return(View(new ResetPasswordViewModel { Token = Token })); }
public async Task <IActionResult> Login(LoginModel loginModel) { var user = _context.User.FirstOrDefault(u => u.UserId == loginModel.Username && u.Password == Cripto.HashPassword(loginModel.Password)); if (user != null) { if (user.UserActivo) { string redirect = "/Home"; string userName = ""; string codificadorId = ""; string faseId = ""; string email = ""; if (user.ProfileId == 1 || user.ProfileId == 2) { var userfasecod = _context.UserFaseCodificador.FirstOrDefault(u => u.UserId == user.UserId); var codificador = _context.Codificador.FirstOrDefault(c => c.CodificadorId == userfasecod.CodificadorId); userName = codificador.NombreCodificador; codificadorId = userfasecod.CodificadorId.ToString(); faseId = userfasecod.FaseId.ToString(); email = codificador.Email; redirect = "/Codificacion"; } else if (user.ProfileId == 0) { userName = "******"; redirect = "/Admin"; } var claims = new List <Claim> { new Claim(ClaimTypes.Sid, user.UserId), new Claim(ClaimTypes.Role, user.ProfileId.ToString()), new Claim(ClaimTypes.UserData, codificadorId), new Claim(ClaimTypes.Version, faseId), new Claim(ClaimTypes.Name, userName), new Claim(ClaimTypes.Email, email) }; var userIdentity = new ClaimsIdentity(claims, "login"); ClaimsPrincipal principal = new ClaimsPrincipal(userIdentity); await HttpContext.SignInAsync(principal); return(Redirect(redirect)); } else { TempData["Message"] = "Usuario desactivado."; } } else { TempData["Message"] = "Usuario o contraseña no válidos."; } return(View()); }
private User LoginUser(string username, string password) { var usuario = _context.User.FirstOrDefault(u => u.UserId == username && u.Password == Cripto.HashPassword(password)); return(usuario); }
public async Task <IActionResult> ChangePassword(string OldPassword, string NewPassword) { var identity = (ClaimsIdentity)HttpContext.User.Identity; string userId = identity.GetSpecificClaim(ClaimTypes.Sid); if (userId == null) { return(NotFound()); } var usuario = _context.User.FirstOrDefault(u => u.UserId == userId && u.Password == Cripto.HashPassword(OldPassword)); if (usuario != null && await PasswordChange(usuario, NewPassword)) { TempData["Message"] = "La contraseña fue cambiada correctamente."; } else { TempData["Message"] = "Error en los datos. No se pudo cambiar la contraseña."; } return(RedirectToAction("Codificador", "Account")); }