예제 #1
0
 public IHttpActionResult ResetUserPassword(int userId)
 {
     try
     {
         if (HttpContext.Current.User.Identity.IsAuthenticated)
         {
             var    userDetails     = _userDetailContext.ResetUserPassword(userId);
             var    user            = UserManager.FindById(userDetails.UserId);
             var    randomCharUp    = GenrateRandomPassword("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
             var    randomCharLow   = GenrateRandomPassword("abcdefghijklmnopqrstuvwxyz");
             var    randomNum       = GenrateRandomPassword("0123456789");
             var    password        = "" + randomCharUp + "" + randomCharLow + "" + randomNum;
             string userToken       = UserManager.GeneratePasswordResetToken(user.Id);
             var    resetPasswordAc = new ResetPasswordAc();
             var    resetPasword    = UserManager.ResetPassword(user.Id, userToken, password);
             if (resetPasword.Succeeded)
             {
                 resetPasswordAc.Succeeded     = true;
                 resetPasswordAc.ResetPassword = password;
             }
             else
             {
                 resetPasswordAc.Succeeded     = false;
                 resetPasswordAc.ResetPassword = "******";
             }
             return(Ok(resetPasswordAc));
         }
         else
         {
             return(BadRequest());
         }
     }
     catch (Exception ex)
     {
         _errorLog.LogException(ex);
         throw;
     }
 }
예제 #2
0
        public async Task <IActionResult> ResetPasswordAsync([FromBody] ResetPasswordAc resetPassword)
        {
            if (string.IsNullOrEmpty(resetPassword.Username))
            {
                return(BadRequest(new ApiServiceResponse()
                {
                    Status = -100, Message = "Username can't be empty"
                }));
            }
            else if (string.IsNullOrEmpty(resetPassword.Code))
            {
                return(BadRequest(new ApiServiceResponse()
                {
                    Status = -100, Message = "Code can't be empty"
                }));
            }
            else if (string.IsNullOrEmpty(resetPassword.Password))
            {
                return(BadRequest(new ApiServiceResponse()
                {
                    Status = -100, Message = "Password can't be empty"
                }));
            }
            else if (string.IsNullOrEmpty(resetPassword.ConfirmPassword))
            {
                return(BadRequest(new ApiServiceResponse()
                {
                    Status = -100, Message = "Confirm password can't be empty"
                }));
            }
            else
            {
                if (resetPassword.Password != resetPassword.ConfirmPassword)
                {
                    return(BadRequest(new ApiServiceResponse()
                    {
                        Status = -100, Message = "Password must be same as Confirm password"
                    }));
                }
                else
                {
                    var user = await _userManager.FindByNameAsync(resetPassword.Username);

                    if (user == null)
                    {
                        return(BadRequest(new ApiServiceResponse()
                        {
                            Status = -100, Message = "Invalid username"
                        }));
                    }
                    else
                    {
                        var isSuccess = await _userManager.ResetPasswordAsync(user, resetPassword.Code, resetPassword.Password);

                        if (isSuccess.Succeeded)
                        {
                            return(Ok(new ApiServiceResponse()
                            {
                                Status = 200, Message = "Password reset successfully"
                            }));
                        }
                        else
                        {
                            return(BadRequest(new ApiServiceResponse()
                            {
                                Status = -100, Message = "Invalid reset code"
                            }));
                        }
                    }
                }
            }
        }