You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 5 Identity重置密码邮件令牌无效问题求助

密码重置时遇到Invalid token错误,无法解决

点击邮件中的重置密码链接进行密码重置时,遇到**无效令牌(Invalid token)**错误。已尝试编码解码、替换"+"等多种方案,均未在当前场景生效。

忘记密码代码

public IActionResult ForgetPassword()
{
    return View();
}

[HttpPost]
public async Task<IActionResult> ForgetPassword(ForgetPasswordViewModel forgetPasswordView)
{
    var hasUser = await _userManager.FindByEmailAsync(forgetPasswordView.Email);

    if (hasUser == null)
    {
        ModelState.AddModelError(string.Empty, "Bu email adresine sahip bir kullanıcı bulunamamıştır.");
        return View();
    }

    string passwordResetToken = await _userManager.GeneratePasswordResetTokenAsync(hasUser);
    
    var passwordResetLink=Url.Action("ResetPassword", "Home", new { userId = hasUser.Id, Token = passwordResetToken }, HttpContext.Request.Scheme);

    await _emailService.SendResetPasswordEmail(passwordResetLink, hasUser.Email);

    TempData["SuccessMessages"] = "Şifre yenileme linki email adresinize gönderilmiştir.";

    return RedirectToAction(nameof(ForgetPassword));
}

重置密码代码

public IActionResult ResetPassword(string userId,string token)
{
    TempData["userId"] = userId;
    TempData["token"] = token;

    return View();
}

[HttpPost]
public async Task<IActionResult> ResetPassword(ResetPasswordViewModel request)
{
    var userId = TempData["userId"];
    var token = TempData["token"];

    if (userId == null || token == null)
    {
        throw new Exception("Bir hata meydana geldi.");
    }

    var hasUser = await _userManager.FindByIdAsync(userId.ToString()!);

    if (hasUser == null)
    {
        ModelState.AddModelError(String.Empty, "Kullanıcı bulunamamıştır.");
    }

    IdentityResult result = await _userManager.ResetPasswordAsync(hasUser, (string)token, request.Password);

    if (result.Succeeded)
    {
        TempData["SuccessMessages"] = "Şifreniz başarı ile değiştirilmiştir.";
    }
    else
    {
        ModelState.AddModelErrorList(result.Errors.Select(x => x.Description).ToList());
    }

    return View();
}

已查阅StackOverflow相关主题并尝试多种方案,问题仍未解决。

内容的提问来源于stack exchange,提问作者Mukremin Buyukkulekci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 21:05:12