由于您在此处生成用于重置密码的令牌:
string pre = UserManager.GeneratePasswordResetToken(user.Id);
但是实际上尝试验证电子邮件的令牌:
result = await UserManager.ConfirmEmailAsync(id, pre);
这是2个不同的令牌。
在您的问题中,您说您正在尝试验证电子邮件,但是您的代码用于密码重置。你在做什么
如果您需要电子邮件确认,请通过生成令牌
var emailConfirmationCode = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
并通过确认
var confirmResult = await UserManager.ConfirmEmailAsync(userId, pre);
如果您需要重置密码,请生成以下令牌:
var pre = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
并确认如下:
var resetResult = await userManager.ResetPasswordAsync(user.Id, pre, newPassword);



