コード例 #1
0
ファイル: AccountController.cs プロジェクト: khorshidis68/cms
        public async Task <IActionResult> ResetPasswordByUserAdmin(ResetPasswordByAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByNameAsync(model.UserName);

                if (user == null)
                {
                    ModelState.AddModelError("", "نام کاربری یافت نشد");
                    return(View(model));
                }
                var resetPasswordToken = await _userManager.GeneratePasswordResetTokenAsync(user);

                var result = await _userManager.ResetPasswordAsync(user, resetPasswordToken, model.NewPassword);

                if (result.Succeeded)
                {
                    ModelState.AddModelError("", "رمزعبور با موفقیت تغییر یافت");
                    return(View(model));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }
            return(View(model));
        }
コード例 #2
0
        public async Task <ActionResult> ResetPasswordByAdmin(string userId, string code)
        {
            var user = await UserManager.FindByEmailAsync(userId);

            var isValidToken = UserManager.VerifyUserToken(user.Id, "ResetPassword", code);

            if (string.IsNullOrEmpty(code) || user == null || !isValidToken)
            {
                return(View("InvalidToken"));
            }
            else if (isValidToken)
            {
                var model = new ResetPasswordByAdminViewModel
                {
                    Email     = userId,
                    Code      = code,
                    Questions = new List <ChallengeQandAViewModel>()
                    {
                        new ChallengeQandAViewModel(), new ChallengeQandAViewModel(), new ChallengeQandAViewModel()
                    }
                };
                return(View(model));
            }

            return(View("Error"));
        }
コード例 #3
0
        public async Task <ActionResult> ResetPasswordByAdmin(ResetPasswordByAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await UserManager.FindByNameAsync(model.Email);

                if (user == null)
                {
                    ModelState.AddModelError("", "No user found.");
                    return(View());
                }
                IdentityResult result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password);

                if (result.Succeeded)
                {
                    user.Forcechangpassword = true;
                    await UserManager.UpdateAsync(user);

                    await UserManager.SendEmailAsync(user.Id, "Your password has been reset by admin", "Your password has been reset. If you didn't ask for reset  ,please contact Admin.");

                    ViewBag.Name = user.DisplayName;
                    return(RedirectToAction("ResetPasswordByAdminConfirmation", "Account", new { name = user.DisplayName }));
                }
                else
                {
                    AddErrors(result);
                    return(View());
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #4
0
        public async Task <ActionResult> ResetPasswordByAdmin(string Id)
        {
            if (Id == null)
            {
                return(View("Error"));
            }

            var    user  = UserManager.FindById(Id);
            var    model = new ResetPasswordByAdminViewModel();
            string code  = await UserManager.GeneratePasswordResetTokenAsync(Id);

            model.Code        = code;
            model.DisplayName = user.DisplayName;

            model.Email = user.Email;

            return(View(model));
        }
        private async Task OnSetPassword()
        {
            try
            {
                if (string.IsNullOrWhiteSpace(_password))
                {
                    await Alert.ShowMessage(nameof(AppResources.PleaseEnterPassword));

                    return;
                }

                IsBusy = true;
                var context = new ResetPasswordByAdminViewModel
                {
                    AppUserId   = _user.AppUserId,
                    NewPassword = _password
                };
                var result = await Api.ResetPasswordByAdmin(context);

                if (!result.Successful.GetValueOrDefault() ||
                    result.ValidationErrors.Any())
                {
                    await Alert.DisplayApiCallError(result.ExceptionMessage, result.ValidationErrors);

                    return;
                }

                if (!result.Data.GetValueOrDefault())
                {
                    return;
                }
                await Nav.Nav.PopAsync();
            }
            catch (Exception e)
            {
                await Alert.DisplayError(e);
            }
            finally
            {
                IsBusy = false;
            }
        }
コード例 #6
0
        public async Task <IHttpActionResult> ResetPassword(ResetPasswordByAdminViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var user = await _userManager.FindByIdAsync(model.Id);

            if (user == null)//|| !(await _userManager.IsEmailConfirmedAsync(user.Id)))
            {
                // Don't reveal that the user does not exist or is not confirmed
                return(BadRequest("کاربری با مشخصات مورد نظر در سیستم موجود نیست"));
            }

            var code = await _userManager.RemovePasswordAsync(user.Id);

            var result = await _userManager.AddPasswordAsync(user.Id, model.Password);

            // If we got this far, something failed, redisplay form
            return(Ok());
        }
コード例 #7
0
        public async Task <ActionResult> ResetPasswordByAdmin(ResetPasswordByAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await UserManager.FindByEmailAsync(model.Email);

                var result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password);

                if (result.Succeeded)
                {
                    // Del/Add the related Security Questions and Answers
                    DataProviderAuth.CreateUserQuestions(user, model.Questions);
                    // Auto SignIn
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #8
0
 public async Task <ApiResponseOfBoolean> ResetPasswordByAdmin(
     ResetPasswordByAdminViewModel context)
 {
     return(await AXClient.Instance.ResetPasswordByAdminAsync(context).ConfigureAwait(false));
 }