Как обновить пароль для существующей записи пользователя в таблице AspNetUsers из WebAPI - PullRequest
0 голосов
/ 10 сентября 2018

Я новичок в Web API, здесь я работаю с аутентификацией на основе токенов. Я выполнил весь процесс входа в систему и регистрации с помощью таблицы AspNetUsers, за исключением функций обновления пароля.

Здесь я обновил поле HashedPassword, передав новый пароль. Когда я пытаюсь получить токен для конкретного пользователя, он возвращает ошибку, связанную с форматом passwordHash, поскольку он напрямую сохраняет новый пароль без хэша.

код:

  public  string updateUserData(string mEmail,string mPassword)
        {
            if (ModelState.IsValid)
            {
                var userStore = new UserStore<ApplicationUser>(new ApplicationDbContext());
                var manager = new UserManager<ApplicationUser>(userStore);
                ApplicationUser AppModel = manager.FindByEmail(mEmail);
                AppModel.PasswordHash = mPassword;
                manager.Update(AppModel);
                return "Success";
            }
            return "Update Failed";
        }

Может ли кто-нибудь помочь мне сделать это должным образом. Я новичок в этом, если я сделал какую-то глупую ошибку, я прошу прощения за это.

1 Ответ

0 голосов
/ 10 сентября 2018

создайте токен сброса пароля и затем используйте его для смены пароля. Пример:

var user = await manager.FindByIdAsync(id);

var token = await manager.GeneratePasswordResetTokenAsync(user);

var result = await manager.ResetPasswordAsync(user, token, "NewPassword");
...