Чтобы вручную отключить идентификационный токен при успешной настройке пароля - PullRequest
1 голос
/ 30 апреля 2019

Я отправляю электронное письмо для подтверждения после создания учетной записи для установки пароля.

 var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);
 var url = Url.Page("/Account/SetupPassword", pageHandler: null, values: new { userId = user.Id, code = code }, protocol: Request.Scheme);
//Code to send email.

В электронном письме есть ссылка, при нажатии на которую он переходит на экран «Установка пароля», где вы можете установить пароль послепроверка токена действительна и работает нормально.

Однако, поскольку срок действия токена составляет 48 часов, пользователь может несколько раз щелкнуть ссылку и перенаправиться на экран и снова установить пароль.после того, как они установили это ранее.Как предотвратить активацию токена после первой успешной установки пароля?

В таблице ASPNetUsers есть два столбца: securitystamp и concurrencystamp.Устранит ли проблему удаление этих значений?

1 Ответ

1 голос
/ 30 апреля 2019

Выбирая из этого ответа , вам придется обновить поле метки безопасности, чтобы гарантировать, что токен был отозван.

Вы можете сделать это явно, используя

await _userManager.UpdateSecurityStampAsync(user);
...