ApplicationUserManager的Generate ___ Token方法

时间:2017-07-21 20:03:10

标签: asp.net-identity asp.net-authorization asp.net-authentication

我看到ApplicationUserManager上有5种不同的Generate Token方法,例如:

  • 管理器。的 GenerateChangePhoneNumberToken ()
  • 管理器。的 GenerateEmailConfirmationToken ()
  • 管理器。的 GeneratePasswordResetToken ()
  • 管理器。的 GenerateTwoFactorToken ()
  • 管理器。的 GenerateUserToken ()

当其他4个存在时,GenerateUserToken有什么意义?你什么时候才能使用GenerateUserToken,而不是其他任何人?

是否可以使用GenerateUserToken的UserToken而不是其他4来处理所有可能的令牌请求任务?

尝试更好地理解这些,但通过搜索找不到多少帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

如果你查看UserManager的source code,你会发现GenerateUserTokenAsync(string purpose, TKey userId)是逻辑最多的那个。您谈到的所有其他方法都是指定参数purpose的此方法的快捷方式。

因此,当您需要重置密码时,请拨打GeneratePasswordResetTokenAsync(TKey userId),然后拨打GenerateUserTokenAsync("ResetPassword", userId)

purpose参数在令牌中编码,在返回的路上,当验证令牌时,此目的必须与令牌生成相同。即为密码重置生成的令牌不适用于电子邮件确认。