ASP.Net Identity 2,双因素安全码时间跨度

时间:2015-01-22 11:10:32

标签: c# asp.net asp.net-identity-2

我们通过电子邮件使用2FA和ASP.Net Identity 2。这在大多数情况下工作正常,但在某些情况下,安全代码会延迟到用户电子邮件,安全代码的6分钟窗口会变得太短。

有没有办法调整2FA代码的时间窗口?

1 个答案:

答案 0 :(得分:2)

我认为您必须更改UserTokenProvider

中的有效期 - 时间跨度

UserManager<TApplicationUser>实施中尝试以下内容:

public static ApplicationUserManager Create(
    IdentityFactoryOptions<ApplicationUserManager> options,
    IOwinContext context)
{
    /* ...create the user store... */ 
    var manager = new ApplicationUserManager(userStore);

    /* ...all the other config stuff... */

    var dataProtectionProvider = options.DataProtectionProvider;

    if (dataProtectionProvider != null)
    {
        var tokenProvider = new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"));

        // here's what you're looking for:
        tokenProvider.TokenLifespan = TimeSpan.FromMinutes(10);  

        manager.UserTokenProvider = tokenProvider;
    }

    return manager;
}