要在成功设置密码后手动停用身份令牌,

时间:2019-04-30 16:07:38

标签: c# asp.net-core-2.0 asp.net-core-identity

创建帐户以设置密码后,我将发送一封电子邮件以确认。

 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 个答案:

答案 0 :(得分:1)

this answer进行选择,您将必须更新securitystamp字段以确保令牌被吊销。

您可以使用

明确地执行此操作
await _userManager.UpdateSecurityStampAsync(user);