public async Task <IActionResult> ResetPassword(ResetUserPasswordViewModel model)
        {
            var item = DataContext.Users
                       .Where(p => p.Id == model.Id)
                       .Select(p => p)
                       .FirstOrDefault();

            model.EmailAddress = item.Email;

            if (!ModelState.IsValid)
            {
                AddError("Error", ModelState, state => state.Children != null && state.Children.Any() /*checks for IValidatableObject (because those have children)*/);
                return(View(model));
            }

            var token = await UserManager.GeneratePasswordResetTokenAsync(item);

            var result = await UserManager.ResetPasswordAsync(item, token, model.Password);

            if (result.Errors.Any())
            {
                AddError("Error", string.Join("\r\n", result.Errors.Select(e => e.Description)));
                return(View(model));
            }

            DataContext.SaveChanges();
            AddSuccess("Success", $"Reset user {model.EmailAddress} password successfully");
            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> ResetUserPassword(ResetUserPasswordViewModel resetUserPasswordViewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.Users.FirstOrDefaultAsync(a => a.Id == resetUserPasswordViewModel.id);

                if (user != null)
                {
                    var removePasswordResult = await _userManager.RemovePasswordAsync(user);

                    if (removePasswordResult.Succeeded)
                    {
                        var addPasswordResult = await _userManager.AddPasswordAsync(user, resetUserPasswordViewModel.NewPassword);

                        if (addPasswordResult.Succeeded)
                        {
                            return(RedirectToAction(nameof(ListUsers), new { Message = ManageMessageId.SetPasswordSuccess }));
                        }
                    }
                    AddErrors(removePasswordResult);
                    return(View(resetUserPasswordViewModel));
                }
                return(RedirectToAction(nameof(ListUsers), new { Message = ManageMessageId.Error }));
            }
            return(View(resetUserPasswordViewModel));
        }
Esempio n. 3
0
        public async Task <JsonResult> ResetUserPassword(ResetUserPasswordViewModel model)
        {
            var result = new { Success = true, Message = "Success" };

            if (ModelState.IsValid)
            {
                try
                {
                    var resetToken = await _userManager.GeneratePasswordResetTokenAsync(model.UserId);

                    var defaultPassword = _parameterService.GetParameterByNameAndCache <string>(ParameterNames.UserResetPassword);
                    var identityResult  = await _userManager.ResetPasswordAsync(model.UserId, resetToken, defaultPassword);

                    if (!identityResult.Succeeded)
                    {
                        result = new { Success = false, Message = identityResult.Errors.First() };
                        _contextManager.ResponseManager.StatusCode = 500;
                        _contextManager.ResponseManager.AppendHeader(ModelStateErrorNames.ErrorMessage, result.Message);
                    }
                }
                catch (Exception ex)
                {
                    _contextManager.ResponseManager.StatusCode = 500;
                    _contextManager.ResponseManager.AppendHeader(ModelStateErrorNames.ErrorMessage, ex.Message);
                    result = new { Success = false, ex.Message };
                }
            }
            else
            {
                var errors = ModelState.GetModelStateMesssages();
                result = new { Success = false, Message = errors.First() };
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public async Task <ActionResult> ResetUserPassword(ResetUserPasswordViewModel model)
        {
            ApplicationDbContext          context     = new ApplicationDbContext();
            UserStore <ApplicationUser>   store       = new UserStore <ApplicationUser>(context);
            UserManager <ApplicationUser> UserManager = new UserManager <ApplicationUser>(store);
            String          userId            = model.UserId;          // User.Identity.GetUserId();//"<YourLogicAssignsRequestedUserId>";
            String          newPassword       = model.ConfirmPassword; // "test@123"; //"<PasswordAsTypedByUser>";
            String          hashedNewPassword = UserManager.PasswordHasher.HashPassword(newPassword);
            ApplicationUser cUser             = await store.FindByIdAsync(userId);

            await store.SetPasswordHashAsync(cUser, hashedNewPassword);

            await store.UpdateAsync(cUser);

            var hased  = MD5Hash(model.ConfirmPassword);
            var person = db.AspNetUsers.FirstOrDefault(o => o.Id == userId);

            if (person != null)
            {
                person.MD5Hash         = hased;
                db.Entry(person).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();
            }
            return(RedirectToAction("UsersWithRoles", "Account", new { area = "", }));
            //return View(model);
        }
Esempio n. 5
0
        public async Task <ActionResult> ResetUserPassword(ResetUserPasswordViewModel model)
        {
            var validatePassword = await UserManager.PasswordValidator.ValidateAsync(model.NewPassword);

            if (ModelState.IsValid && validatePassword.Succeeded)
            {
                var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(_context));
                var user        = userManager.FindById(model.Id);
                if (user == null)
                {
                    return(View(model));
                }

                await userManager.RemovePasswordAsync(model.Id);

                var result = await userManager.AddPasswordAsync(model.Id, model.NewPassword);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Edit", new { id = model.Id, Message = ManageMessageId.ResetUserPasswordSuccess }));
                }
            }
            AddErrors(validatePassword);
            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public async Task <ActionResult> ResetPassword(ResetUserPasswordViewModel model, string id)
        {
            var user = UserManager.FindById(id);

            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }

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

                if (result.Succeeded)
                {
                    TempData["message"]     = "Password for - " + user.UserName + " changed successfully";
                    TempData["messageType"] = "success";
                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                TempData["message"]     = "Error changing password for - " + user.UserName + " " + ex.GetBaseException().Message;
                TempData["messageType"] = "danger";
            }

            return(View());
        }
        public ActionResult SetPassword(string id)
        {
            ResetUserPasswordViewModel model = new ResetUserPasswordViewModel()
            {
                UserName = GetApplicationUserById(id).UserName
            };

            return(View(model));
        }
Esempio n. 8
0
        public ActionResult ResetPassword(string userName)
        {
            var model = new ResetUserPasswordViewModel()
            {
                Username = userName
            };

            return(View(model));
        }
        /// <summary>
        /// Renders view with ResetUserPasswordViewModel to reset the password of the user
        /// </summary>
        /// <param name="id">User id of the user whose password is to be reseted</param>
        /// <returns></returns>
        public ActionResult ResetPassword(string id)
        {
            ResetUserPasswordViewModel model = new ResetUserPasswordViewModel();

            model.Code = UserManager.GeneratePasswordResetToken(id);
            ApplicationUser user = UserManager.FindById(id);

            model.Email = user.Email;
            return(View(model));
        }
        public void SetPassword(ResetUserPasswordViewModel model, ClaimsPrincipal ctx)
        {
            AuthenticablePrincipal principal = this.GetUser(model.Id);

            authorizationLogic.IsAuthorizedThrowsException(AuthorizationScopes.ManageUsers, ctx, principal, EventCategory.UserManagementResetPassword);

            principal.PasswordHash = BCrypt.Net.BCrypt.HashPassword(model.NewPassword);

            configurationRepository.Update <AuthenticablePrincipal>(principal);
        }
Esempio n. 11
0
        public ActionResult ResetPassword(ResetUserPasswordViewModel model)
        {
            var user = _session.Query <User>().FirstOrDefault(x => x.Username == model.Username);

            if (model.NewPassword != model.ConfirmNewPassword)
            {
                ModelState.AddModelError("ConfirmNewPassword", "New password confirmation incorrect");
                return(View("ResetPassword", model));
            }

            user.ChangePassword(Encryption.HashPassword(model.NewPassword));
            return(RedirectToAction("Index", "Administration"));
        }
Esempio n. 12
0
        public IActionResult Reset(string userId = null, string token = null)
        {
            if (token == null)
            {
                return(Redirect(Url.HomeLink()));
            }

            var model = new ResetUserPasswordViewModel
            {
                Token = token
            };

            return(View(model));
        }
        public async Task <IActionResult> ResetPassword(int id)
        {
            var item = DataContext.Users
                       .Where(p => p.Id == id)
                       .Select(p => p)
                       .FirstOrDefault();

            var model = new ResetUserPasswordViewModel()
            {
                EmailAddress = item.Email,
                Id           = item.Id
            };

            return(View(model));
        }
        public async Task <ActionResult> SetPassword(ResetUserPasswordViewModel model)
        {
            var user = await UserManager.FindByNameAsync(model.UserName);

            if (user == null)
            {
                ModelState.AddModelError("", "用户不存在。");
                model.NewPassword = model.ConfirmPassword = "";
                return(View(model));
            }
            string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);

            var result = await UserManager.ResetPasswordAsync(user.Id, code, model.NewPassword);

            return(RedirectToAction("Index", new { id = user.Id, message = UsersAdministrationMessageId.ResetPasswordSuccess }));
        }
Esempio n. 15
0
        // GET: /Admin/ResetUserPassword/Id
        public ActionResult ResetUserPassword(string id)
        {
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(_context));
            var user        = userManager.FindById(id);

            if (user == null)
            {
                return(RedirectToAction("Edit", new { id = id }));
            }

            ResetUserPasswordViewModel reset = new ResetUserPasswordViewModel
            {
                Id = id
            };

            return(View(reset));
        }
        // GET: /UserAdmin/ResetPassword
        public ActionResult ResetPassword(string id)
        {
            if (!IsLoggedIn())
            {
                return(RedirectToAction("login", "account"));
            }
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ViewBag.poscategories = db.PostCategory.Where(x => x.isactive == true).OrderBy(x => x.id).ToList();
            ResetUserPasswordViewModel model = new ResetUserPasswordViewModel()
            {
                Id = id
            };

            return(View(model));
        }
Esempio n. 17
0
        /// <inheritDoc/>
        public async Task <string> CreateReportForResetUserPasswordAsync(string userId, string callbackUrl)
        {
            string name = "~/Areas/Report/Views/UserReport/ResetUserPassword.cshtml";

            var user = await _identityUserManager.FindByIdAsync(userId);

            if (user != null)
            {
                var model = new ResetUserPasswordViewModel()
                {
                    UserId = userId, UserName = user.UserName, CallbackUrl = callbackUrl
                };
                return(await _viewHelper.RenderViewToStringAsync(name, model));
            }
            else
            {
                throw new Exception("User not found");
            }
        }
        public async Task <ActionResult> ResetPassword(ResetUserPasswordViewModel model)
        {
            if (!IsLoggedIn())
            {
                return(RedirectToAction("login", "account"));
            }
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var removePassword = UserManager.RemovePassword(model.Id);

            if (removePassword.Succeeded)
            {
                //Removed Password Success
                var validPass = await UserManager.PasswordValidator.ValidateAsync(model.NewPassword);

                if (validPass.Succeeded)
                {
                    var AddPassword = UserManager.AddPassword(model.Id, model.NewPassword);
                    if (AddPassword.Succeeded)
                    {
                        return(View("PasswordResetConfirm"));
                    }
                }
                else
                {
                    string errors = string.Empty;
                    foreach (var items in validPass.Errors)
                    {
                        errors += items.ToString();
                    }
                    ModelState.AddModelError("", errors);
                    return(View(model));
                }
            }
            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }
Esempio n. 19
0
        public ActionResult ResetUserPassword(ResetUserPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                UserManager <IdentityUser> userManager = new UserManager <IdentityUser>(new UserStore <IdentityUser>());
                if (userManager.HasPassword(model.UserId))
                {
                    userManager.RemovePassword(model.UserId);
                    userManager.AddPassword(model.UserId, model.ConfirmPassword);
                }

                TempData["Message"]      = "Password successfully reset to " + model.ConfirmPassword;
                TempData["MessageValue"] = "1";

                return(RedirectToAction("Index", "Korisnici"));
            }

            // If we got this far, something failed, redisplay form
            TempData["Message"]      = "Invalid User Details. Please try again in some minutes ";
            TempData["MessageValue"] = "0";
            return(RedirectToAction("Index", "Korisnici"));
        }
Esempio n. 20
0
        public async Task <bool> ResetUserPassword([FromBody] ResetUserPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser dbUser = _userManager.Users.FirstOrDefault(u => u.Id == model.Id);

                if (dbUser.Id == model.Id)
                {
                    dbUser.PasswordHash = _userManager.PasswordHasher.HashPassword(dbUser, model.Password);
                    var result = await _userManager.UpdateAsync(dbUser);

                    return(result.Succeeded);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Esempio n. 21
0
        public async Task <IActionResult> Reset(ResetUserPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            try
            {
                var user = await _identityService.GetUserByEmail(model.Email);

                var resetUserPasswordResponse = await _mediator.Send(new ResetUserPasswordCommand()
                {
                    Password        = model.Password,
                    ConfirmPassword = model.ConfirmPassword,
                    Token           = model.Token,
                    User            = user
                });

                if (resetUserPasswordResponse.IdentityResult.Succeeded)
                {
                    return(RedirectToAction(nameof(ResetConfirmation)));
                }

                if (resetUserPasswordResponse.IdentityResult.Errors.Count() > 0)
                {
                    AddErrors(resetUserPasswordResponse.IdentityResult);
                }
            }
            catch (ValidationException ex)
            {
                AddErrors(ex);
            }

            return(View(model));
        }
 public ActionResult ResetUserPassword(ResetUserPasswordViewModel model)
 {
     userManagement.SetPassword(model, User);
     return(http.RespondSuccess());
 }