GenerateEmailConfirmationTokenAsync的默认到期时间跨度是多少?我应该从ConfirmEmailAsync获得什么样的错误?
对于ConfirmEmailAsync获得无效令牌错误。还有其他错误吗?
一旦我确认电子邮件并再次访问相同的令牌,它就会再次确认电子邮件。那么它将重新确认电子邮件的时间跨度以及何时显示无效令牌消息?
用于生成电子邮件:
string code = await userManager.GenerateEmailConfirmationTokenAsync(userId);
确认电子邮件:
var userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
var result = await userManager.ConfirmEmailAsync(userId, code);
if (result.Succeeded)
{
return RedirectToAction("Index", "Home");
}
答案 0 :(得分:2)
默认时间跨度为一天,但您可以指定电子邮件到期的时间跨度。 到期后,您将收到“无效令牌”错误。 您可以更改Create方法(App_Start \ IdentityConfig.cs文件)中的代码以获取自定义到期时间。
if (dataProtectionProvider != null)
{
manager.UserTokenProvider =
new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"))
{
TokenLifespan = TimeSpan.FromHours(3)
};
}