【发布时间】:2020-02-29 23:27:58
【问题描述】:
当我尝试重置密码时,我收到“无效令牌”
发送前的令牌: cBcZbiN8LO9 + aIVMbegaj1k5IYrJ3fBOKJ / WSH0NZZUgguSgWOFANoVOMp8y5b / 481AP / mpnusV1YlmXQ1zFQmi4S / 7xYMtRn3IeSIviEWmuxwPF8O41Y1pFQ1tF8GAaw5D4 / Y9 + olZvII / kh5W8RGn4JT9wrOz / qwtdnYXbYxmjp4i20mLzXWqs9ewVUKIo8FZ + 7mXP + sKYKk + e754tLw == P>
已收到令牌: cbczbin8lo9 + aivmbegaj1k5iyrj3fbokj / wsh0nzzuggusgwofanovomp8y5b / 481ap / mpnusv1ylmxq1zfqmi4s / 7xymtrn3iesiviewmuxwpf8o41y1pfq1tf8gaaw5d4 / Y9 + olzvii / kh5w8rgn4jt9wroz / qwtdnyxbyxmjp4i20mlzxwqs9ewvukio8fz + 7mxp + skykk + e754tlw == P>
如您所见,唯一的区别是,由于某种原因,生成时有大写字母并更改为小写,可能是由 HttpUtility.UrlEncode / HttpUtility.UrlDencode 操作引起的?
忘记密码:
string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = HttpUtility.UrlEncode(code) }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(user.Id, "Reset Password", string.Format("Please reset your password by clicking <a href='{0}'>here</a>", callbackUrl));
重设密码
var code = HttpUtility.UrlDecode(model.Code);
var result = await UserManager.ResetPasswordAsync(user.Id, code, model.Password);
知道是什么原因造成的吗?
谢谢
【问题讨论】:
标签: asp.net-mvc asp.net-identity