ASP.NET 身份 2:密码重置令牌将无法正确通过

ASP.NET Identity 2: Password Reset Token will not pass correctly

当我尝试按照提供的许多示例进行操作时,我 运行 遇到了几个问题。代码的最新迭代如下所示;

string passwordResetToken = await _applicationUserManager.GeneratePasswordResetTokenAsync(u.Id);
string code = callbackUrl + HttpUtility.UrlEncode(passwordResetToken);
await _applicationUserManager.SendEmailAsync(u.Id, RESET_SUBJECT, string.Format(RESET_BODY, u.FirstName, u.LastName, code));

密码重置 link 看起来像:

http://localhost:52819/account/reset/Jn4X1sn4Ybmh9vPJmHO8U7ZdiQqr%2bRJTtn9PAMbtToILxhlUe5by0FwbX0GIY1%2bZuaHX0tAsNtcr52y1kFYPZabGwFE%2ftWvfvttKH1trLkbekhxwAZm0UbrAyZHtZyx1q3HbjFwB5lxEvfpzlvdFx9%2bByE5Nr3eehpyvyeqshhiKkr1xvPb4Oc%2bStjDFBj2qX4Qwe7dHayx8n27GaiRdNA%3d%3d

我没有发现其他人对此有抱怨,所以我想我错过了一些愚蠢的东西......但我找不到它......

您可以尝试使用常规查询字符串参数,而不是使用 uri 参数定义自定义路由。

var url = "account/reset?token=" + HttpUtilityUrlEncode(token);