Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net标识2,双因素安全代码时间跨度_C#_Asp.net_Asp.net Identity 2 - Fatal编程技术网

C# ASP.Net标识2,双因素安全代码时间跨度

C# ASP.Net标识2,双因素安全代码时间跨度,c#,asp.net,asp.net-identity-2,C#,Asp.net,Asp.net Identity 2,我们通过电子邮件将2FA与ASP.Net Identity 2一起使用。这在大多数情况下都可以正常工作,但在某些情况下,安全代码发送到用户电子邮件时会出现延迟,安全代码的6分钟窗口就会变得太短 是否有办法调整2FA代码的此时间窗口?我认为您必须在UserTokenProvider中更改有效时间跨度 在UserManager实现中尝试以下操作: public static ApplicationUserManager Create( IdentityFactoryOptions<Ap

我们通过电子邮件将2FA与ASP.Net Identity 2一起使用。这在大多数情况下都可以正常工作,但在某些情况下,安全代码发送到用户电子邮件时会出现延迟,安全代码的6分钟窗口就会变得太短


是否有办法调整2FA代码的此时间窗口?

我认为您必须在
UserTokenProvider
中更改有效时间跨度

UserManager
实现中尝试以下操作:

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;
}
公共静态应用程序服务器管理器创建(
IdentityFactoryOptions选项,
IOwinContext(上下文)
{
/*…创建用户存储…*/
var manager=新的ApplicationUserManager(userStore);
/*…所有其他配置的东西*/
var dataProtectionProvider=options.dataProtectionProvider;
if(dataProtectionProvider!=null)
{
var tokenProvider=newdataprotectortokenprovider(dataProtectionProvider.Create(“ASP.NET标识”);
//以下是您要查找的内容:
tokenProvider.TokenLifespan=时间跨度.FromMinutes(10);
manager.UserTokenProvider=tokenProvider;
}
退货经理;
}

要实现此功能,您还必须更改启动文件中的双因素cookie超时,如下所示:使用TwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie,TimeSpan.FromMinutes(10));