GenerateEmailConfirmationTokenAsync默认到期时间跨度

时间:2018-03-07 11:14:14

标签: c# asp.net-mvc-5 asp.net-identity owin

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");
    }

1 个答案:

答案 0 :(得分:2)

默认时间跨度为一天,但您可以指定电子邮件到期的时间跨度。 到期后,您将收到“无效令牌”错误。 您可以更改Create方法(App_Start \ IdentityConfig.cs文件)中的代码以获取自定义到期时间。

if (dataProtectionProvider != null)
{
    manager.UserTokenProvider = 
            new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"))
            {                    
                 TokenLifespan = TimeSpan.FromHours(3)
            };
}

来源:https://docs.microsoft.com/en-us/aspnet/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity