相关疑难解决方法(0)

如何检查密码重置令牌是否已过期?

我正在使用ASP.NET Identity,并且已经具备基本的“忘记密码/重置密码”功能。

当您填写忘记密码的表格时,它将使用创建一个重置令牌 _userManager.GeneratePasswordResetTokenAsync(user)

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> ForgotPassword(ForgotPasswordViewModel model)
{
    if (ModelState.IsValid)
    {
        var user = await _userManager.FindByNameAsync(model.Email);
        if (user == null || !(await _userManager.IsEmailConfirmedAsync(user)))
        {
            return View("ForgotPasswordConfirmation");
        }

        var code = await _userManager.GeneratePasswordResetTokenAsync(user);
        var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme);
        await _emailSender.SendEmailAsync(model.Email, "Reset Password",
               $"Please reset your password by clicking here: <a href='{callbackUrl}'>link</a>");
        return View("ForgotPasswordConfirmation");
    }

    // If we got this far, something failed, redisplay form
    return …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-identity asp.net-core

5
推荐指数
2
解决办法
3633
查看次数

标签 统计

asp.net-core ×1

asp.net-identity ×1

c# ×1