コード例 #1
0
        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));
        }
コード例 #2
0
        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
            });
        }
コード例 #3
0
        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"));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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 }
            });
        }