public async Task <IActionResult> Forgot(string id, [FromForm] string NewPassword) { try { if (!ModelState.IsValid) { return(StatusCode(StatusCodes.Status500InternalServerError, new Response { Status = "Error", Messages = new Message[] { new Message { Lang_id = 1, MessageLang = "Model state isn't valid!" }, new Message { Lang_id = 2, MessageLang = "Состояние модели недействительно!" }, new Message { Lang_id = 3, MessageLang = "Model vəziyyəti etibarsızdır!" } } })); } AppUser user = _user.Users.Where(u => u.ActiveCode == id).FirstOrDefault(); if (user == null) { return(StatusCode(StatusCodes.Status500InternalServerError, new Response { Status = "Error", Messages = new Message[] { new Message { Lang_id = 1, MessageLang = "Model state isn't valid!" }, new Message { Lang_id = 2, MessageLang = "Состояние модели недействительно!" }, new Message { Lang_id = 3, MessageLang = "Model vəziyyəti etibarsızdır!" } } })); } string token = await _userManager.GeneratePasswordResetTokenAsync(user); IdentityResult identityResult = await _userManager.ResetPasswordAsync(user, token, NewPassword); if (!identityResult.Succeeded) { return(StatusCode(StatusCodes.Status500InternalServerError, new Response { Status = "Error", Messages = new Message[] { new Message { Lang_id = 1, MessageLang = "Model state isn't valid!" }, new Message { Lang_id = 2, MessageLang = "Состояние модели недействительно!" }, new Message { Lang_id = 3, MessageLang = "Model vəziyyəti etibarsızdır!" } } })); } user.ActiveCode = null; await _user.SaveChangesAsync(); return(Ok()); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, new Response { Status = "Error", Messages = new Message[] { new Message { Lang_id = 1, MessageLang = e.Message + e.InnerException }, new Message { Lang_id = 2, MessageLang = e.Message + e.InnerException }, new Message { Lang_id = 3, MessageLang = e.Message + e.InnerException } } })); } }
public async Task <IActionResult> Forgot(string id) { try { if (!ModelState.IsValid) { return(StatusCode(StatusCodes.Status500InternalServerError, new Response { Status = "Error", Messages = new Message[] { new Message { Lang_id = 1, MessageLang = "Model state isn't valid!" }, new Message { Lang_id = 2, MessageLang = "Состояние модели недействительно!" }, new Message { Lang_id = 3, MessageLang = "Model vəziyyəti etibarsızdır!" } } })); } AppUser user = await _userManager.FindByEmailAsync(id); if (user == null) { return(StatusCode(StatusCodes.Status500InternalServerError, new Response { Status = "Error", Messages = new Message[] { new Message { Lang_id = 1, MessageLang = "Model state isn't valid!" }, new Message { Lang_id = 2, MessageLang = "Состояние модели недействительно!" }, new Message { Lang_id = 3, MessageLang = "Model vəziyyəti etibarsızdır!" } } })); } if (user.ActiveCode != null) { return(StatusCode(StatusCodes.Status500InternalServerError, new Response { Status = "Error", Messages = new Message[] { new Message { Lang_id = 1, MessageLang = "We already sent email!" }, new Message { Lang_id = 2, MessageLang = "Мы уже отправили письмо на вашу почту!" }, new Message { Lang_id = 3, MessageLang = "Biz artıq email göndərmişik!" } } })); } user.ActiveCode = Guid.NewGuid().ToString(); await _user.SaveChangesAsync(); string url = "http://*****:*****@gmail.com", "Camex Support"); message.To.Add(new MailAddress(user.Email)); message.Subject = "Reset Password"; message.Body = "We heard that you lost your password. Sorry about that!<br>" + "<br>But don’t worry! You can use the following link to <span class='il' >reset</span> your password:<br>" + "<br><a href = " + url + " rel='noreferrer' target='_blank'>" + url + "</a><br>" + "<br>If you don’t use this link within 3 hours, it will expire.<br>" + "Thanks,<br>" + "The Seynur Team"; message.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.EnableSsl = true; smtp.Credentials = new NetworkCredential("*****@*****.**", "seynur2462736"); smtp.Send(message); return(Ok()); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, new Response { Status = "Error", Messages = new Message[] { new Message { Lang_id = 1, MessageLang = e.Message + e.InnerException }, new Message { Lang_id = 2, MessageLang = e.Message + e.InnerException }, new Message { Lang_id = 3, MessageLang = e.Message + e.InnerException } } })); } }