Exemplo n.º 1
0
        public async Task <IdentityResult> UpdateUserAsync(Guid userId, string username = null, string password = null, string email = null, string phoneNumber = null)
        {
            var result = new IdentityResult();
            var user   = GetUser(userId);

            if (!string.IsNullOrWhiteSpace(username))
            {
                result = await uM.SetUserNameAsync(user, username);

                if (!result.Succeeded)
                {
                    return(result);
                }
            }

            if (!string.IsNullOrWhiteSpace(password))
            {
                result = await uM.RemovePasswordAsync(user);

                if (!result.Succeeded)
                {
                    return(result);
                }
                result = await uM.AddPasswordAsync(user, password);
            }

            if (!string.IsNullOrWhiteSpace(email))
            {
                result = await uM.SetEmailAsync(user, email);

                if (!result.Succeeded)
                {
                    return(result);
                }
            }

            if (!string.IsNullOrWhiteSpace(phoneNumber))
            {
                result = await uM.SetPhoneNumberAsync(user, phoneNumber);

                if (!result.Succeeded)
                {
                    return(result);
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        public async Task <ActionResult> SetPassword(SetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword);

                if (result.Succeeded)
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    if (user != null)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess }));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> ResetPassword(ResetPasswordInputModel model)
        {
            //model.OldPassword = "";
#if DEBUG
            Debug.WriteLine("UserName="******"Password="******"ConfirmPassword="******"OldPassword="******"Id=" + model.Id.ToString());
#endif
            if (ModelState.IsValid)
            {
#if DEBUG
                Debug.WriteLine("Model is valid");
#endif
                var user = await _userManager.FindByNameAsync(model.UserName);

                if (user != null)
                {
#if DEBUG
                    Debug.WriteLine("user is not null");
#endif

                    /*
                     * var checkOldPassword =await _userManager.CheckPasswordAsync(user, model.OldPassword);
                     *
                     * if (checkOldPassword)
                     * { */
                    var result = await _userManager.RemovePasswordAsync(user.UserID);

                    if (result.Succeeded)
                    {
#if DEBUG
                        Debug.WriteLine("Password is removed to succeeded");
#endif
                        var result2 = await _userManager.AddPasswordAsync(user.UserID, model.Password);

                        if (result2.Succeeded)
                        {
#if DEBUG
                            Debug.WriteLine("Password is added to succeeded");
#endif
                            var result3 = await _userManager.SetSigninEndDateAsync(user);

#if DEBUG
                            if (result3)
                            {
                                Debug.WriteLine("SetSigninEndDateAsync is  well done");
                            }
#endif
                            var result4 = await _userManager.ResetAccessFailedCountAsync(user.UserID);

#if DEBUG
                            if (result4.Succeeded)
                            {
                                Debug.WriteLine("ResetAccessFailedCountAsync is executed.");
                            }
#endif

                            /*
                             * result4 = await _userManager.SetChangePasswordEndDateAsync(user);
                             #if DEBUG
                             * if (result4.Succeeded)
                             * {
                             *  Debug.WriteLine("SetChangePasswordEndDateAsync is executed.");
                             * }
                             #endif
                             *
                             * result4 = await _userManager.SetPasswordEnabledAsync(user, false);
                             #if DEBUG
                             * if (result4.Succeeded)
                             * {
                             *  Debug.WriteLine("SetPasswordEnabledAsync is executed.");
                             * }
                             #endif
                             */
                            return(RedirectToAction("List"));
                        }
                    }

                    //      }

                    /*      else
                     *    {
                     *        // Активизирована ли функция  блокировки учётки в системе
                     *        if (_userManager.LockoutEnabled)
                     *        {
                     *
                     #if DEBUG
                     *            Debug.WriteLine("++++ GetLockoutEnabledAsync is enabled");
                     #endif
                     *            // Увелечение счётчика неудачных попыток ввода пароля
                     *            if (await _userManager.AccessFailedAsync(user.UserID) == IdentityResult.Success)
                     *            {
                     #if DEBUG
                     *                Debug.WriteLine("~~~ AccessFailedAsync is working!");
                     #endif
                     *                if (await _userManager.IsLockedOutAsync(user.UserID))
                     *                {
                     #if DEBUG
                     *                    Debug.WriteLine("Account is locked out!");
                     #endif
                     *                    //Заблокировать учётку
                     *                    return View("Lockout");
                     *                }
                     *
                     *
                     *            }
                     *
                     *
                     *        }
                     *
                     *    } */
                }
            }
#if DEBUG
            Debug.WriteLine("Error is occured in ResetPassword");
#endif
            return(View(model));
        }
Exemplo n.º 4
0
        public async Task <ActionResult> Manage(ManageUserViewModel model)
        {
            var hasPassword = HasPassword();

            ViewBag.HasLocalPassword = hasPassword;
            ViewBag.ReturnUrl        = Url.Action("Manage");
            if (hasPassword)
            {
                if (ModelState.IsValid)
                {
                    User _ObjUser = await cms_db.GetObjUserById(long.Parse(User.Identity.GetUserId()));

                    // _ObjUser.FullName = model.FullName;
                    int _rs = await cms_db.UpdateUser(_ObjUser);

                    var result = await UserManager.ChangePasswordAsync(long.Parse(User.Identity.GetUserId()), model.OldPassword, model.NewPassword);

                    if (result.Succeeded)
                    {
                        int ach = await cms_db.CreateUserHistory(_ObjUser.Id, Request.ServerVariables["REMOTE_ADDR"],
                                                                 (int)EnumCore.ActionType.Login, "ChangePasswor", 0, model.Email, "User", (int)EnumCore.ObjTypeId.nguoi_dung);

                        var user = await UserManager.FindByIdAsync(long.Parse(User.Identity.GetUserId()));
                        await SignInAsync(user, false);

                        return(RedirectToAction(
                                   "Manage",
                                   new
                        {
                            Message = ManageMessageId.ChangePasswordSuccess
                        }));
                    }
                    AddErrors(result);
                }
            }
            else
            {
                // User does not have a password so remove any validation errors caused by a missing OldPassword field
                var state = ModelState["OldPassword"];
                if (state != null)
                {
                    state.Errors.Clear();
                }

                if (ModelState.IsValid)
                {
                    var result = await UserManager.AddPasswordAsync(long.Parse(User.Identity.GetUserId()), model.NewPassword);

                    if (result.Succeeded)
                    {
                        return(RedirectToAction(
                                   "Manage",
                                   new
                        {
                            Message = ManageMessageId.SetPasswordSuccess
                        }));
                    }
                    AddErrors(result);
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }