public async Task <ActionResult> ForgotPasswordConfirmation(ResetPasswordByPhoneViewModel model) { if (!ModelState.IsValid) { return(View(model)); } model.PhoneNumber = model.PhoneNumber.RemoveWhiteSpace(); var user = await UserManager.FindByNameAsync(model.PhoneNumber); if (user == null) { // Don't reveal that the user does not exist ModelState.AddModelError("", "هذا المستخدم غير موجود"); return(View("ForgotPassword")); } if (!await UserManager.VerifyChangePhoneNumberTokenAsync(user.Id, model.Code, model.PhoneNumber)) { ModelState.AddModelError("code", " غير قادر على التحقق من الكود"); return(View(model)); } ResetPasswordViewModel resetModel = new ResetPasswordViewModel() { PhoneNumber = model.PhoneNumber, Code = model.Code, }; return(View("ResetPassword", resetModel)); }
public async Task <ReturnData> ForgotPasswordConfirmation(ResetPasswordByPhoneViewModel model) { model.PhoneNumber = model.PhoneNumber.RemoveWhiteSpace(); var user = await _userManager.FindByNameAsync(model.PhoneNumber); if (user == null) { // Don't reveal that the user does not exist return(new ReturnData() { State = false, Data = "هذا المستخدم غير موجود" }); } if (!await _userManager.VerifyChangePhoneNumberTokenAsync(user.Id, model.Code, model.PhoneNumber)) { return(new ReturnData() { State = false, Data = " غير قادر على التحقق من الكود" }); } ResetPasswordViewModel resetModel = new ResetPasswordViewModel() { PhoneNumber = model.PhoneNumber, Code = model.Code, }; return(new ReturnData() { State = true, Data = resetModel }); }
public async Task <HttpResponseMessage> ForgotPasswordConfirmation(ResetPasswordByPhoneViewModel model) { if (ModelState.IsValid) { ReturnData result = await _repo.ForgotPasswordConfirmation(model); return(OkResponse <ReturnData>(result)); } return(NotFoundResponse("Error", "Invalid Data")); }
public async Task <ActionResult> ForgotPassword(ForgotPasswordViewModel model) { if (ModelState.IsValid) { model.PhoneNumber = model.PhoneNumber.RemoveWhiteSpace(); var user = await UserManager.FindByNameAsync(model.PhoneNumber); if (user == null) { // Don't reveal that the user does not exist or is not confirmed ModelState.AddModelError("", " هذا المستخدم غير موجود "); return(View("ForgotPassword")); } // var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); var code = await UserManager.GenerateChangePhoneNumberTokenAsync(user.Id, model.PhoneNumber); // var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); //await UserManager.SendEmailAsync(user.Id, "Reset Password", "Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a>"); // ViewBag.Link = callbackUrl; ResetPasswordByPhoneViewModel resetModel = new ResetPasswordByPhoneViewModel() { PhoneNumber = model.PhoneNumber, UserId = user.Id }; if (_settingManager.IsSMSEnabled()) { ViewBag.Status = " تم ارسال كود تعين على الجوال"; await SendSMSAsync(new IdentityMessage { Body = " من فضلك استخدم الكود الأتى فى اعادة تعين كلمة المرور " + code, Destination = model.PhoneNumber }); } else { ViewBag.Status = " من فضلك أدخل الكود الاتى لتعين كلمة المرور " + code; } return(View("ForgotPasswordConfirmation", resetModel)); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <ReturnData> ForgotPassword(ForgotPasswordViewModel model, bool IsSMSEnabled, UserLanguage Lang) { model.PhoneNumber = model.PhoneNumber.RemoveWhiteSpace(); var user = await _userManager.FindByNameAsync(model.PhoneNumber); if (user == null) { // Don't reveal that the user does not exist or is not confirmed return(new ReturnData() { State = false, Data = "user does not exist or is not confirmed" }); } // var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); var code = await _userManager.GenerateChangePhoneNumberTokenAsync(user.Id, model.PhoneNumber); // var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); //await UserManager.SendEmailAsync(user.Id, "Reset Password", "Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a>"); // ViewBag.Link = callbackUrl; ResetPasswordByPhoneViewModel resetModel = new ResetPasswordByPhoneViewModel() { PhoneNumber = model.PhoneNumber, UserId = user.Id }; if (IsSMSEnabled) { await SendSMSAsync(new IdentityMessage { Body = " من فضلك استخدم الكود الأتى فى اعادة تعين كلمة المرور " + code, Destination = model.PhoneNumber }, Lang); } return(new ReturnData() { State = true, Data = new { code = code } }); }