1

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

  • 经理。生成更改电话号码令牌()
  • 经理。生成EmailConfirmationToken ()
  • 经理。生成密码重置令牌()
  • 经理。生成双因子令牌()
  • 经理。生成用户令牌()

当其他 4 个存在时 GenerateUserToken 有什么意义?你什么时候只使用 GenerateUserToken 而不是其他的?

是否可以将 GenerateUserToken 中的 UserToken 而不是其他 4 个用于所有可能的令牌请求任务?

试图更好地理解这些,但没有通过搜索找到太多帮助。谢谢!

4

1 回答 1

2

如果你查看 UserManager 的源代码,你会发现这GenerateUserTokenAsync(string purpose, TKey userId)是最有逻辑的一个。您谈论的所有其他方法都是purpose指定参数的此方法的快捷方式。

因此,当您需要重置密码时,您GeneratePasswordResetTokenAsync(TKey userId)会依次调用GenerateUserTokenAsync("ResetPassword", userId).

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

于 2017-07-23T23:42:19.580 回答