public async Task <IActionResult> EnterSmsCode(EnterSMSCodeViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var mail = await _dbContext.UserEmails.SingleOrDefaultAsync(t => t.EmailAddress == model.Email.ToLower()); if (mail == null) { return(NotFound()); } var user = await _dbContext .Users .Include(t => t.Emails) .SingleOrDefaultAsync(t => t.Id == mail.OwnerId); if (user.SMSPasswordResetToken.ToLower().Trim() == model.Code.ToLower().Trim()) { user.SMSPasswordResetToken = string.Empty; await _userManager.UpdateAsync(user); var token = await _userManager.GeneratePasswordResetTokenAsync(user); return(RedirectToAction(nameof(ResetPassword), new { code = token })); } else { ModelState.AddModelError("", "Your code is not correct and we can't help you reset your password!"); return(View(model)); } }
public async Task <IActionResult> EnterSMSCode(EnterSMSCodeViewModel model) { if (!ModelState.IsValid) { model.ModelStateValid = false; return(View(model)); } var user = await _userManager.FindByEmailAsync(model.Email); if (user.SMSPasswordResetToken.ToLower().Trim() == model.Code.ToLower().Trim()) { user.SMSPasswordResetToken = string.Empty; await _userManager.UpdateAsync(user); var token = await _userManager.GeneratePasswordResetTokenAsync(user); return(RedirectToAction(nameof(ResetPassword), new { code = token })); } else { model.ModelStateValid = false; ModelState.AddModelError("", "Your code is not correct and we can't help you reset your password!"); return(View(model)); } }
public async Task <IActionResult> EnterSmsCode(string email) { var mail = await _dbContext.UserEmails.SingleOrDefaultAsync(t => t.EmailAddress == email.ToLower()); if (mail == null) { return(NotFound()); } var user = await _dbContext .Users .Include(t => t.Emails) .SingleOrDefaultAsync(t => t.Id == mail.OwnerId); if (user == null || user.PhoneNumberConfirmed == false) { return(NotFound()); } var phoneLast = user.PhoneNumber.Substring(user.PhoneNumber.Length - 4); var model = new EnterSMSCodeViewModel { Email = email, PhoneLast = phoneLast }; return(View(model)); }
public async Task <IActionResult> EnterSMSCode(string Email) { var user = await _userManager.FindByEmailAsync(Email); if (user == null || user.PhoneNumberConfirmed == false) { return(NotFound()); } var phoneLast = user.PhoneNumber.Substring(user.PhoneNumber.Length - 4); var model = new EnterSMSCodeViewModel { Email = Email, PhoneLast = phoneLast }; return(View(model)); }