C# ASP.Net标识2,双因素安全代码时间跨度
我们通过电子邮件将2FA与ASP.Net Identity 2一起使用。这在大多数情况下都可以正常工作,但在某些情况下,安全代码发送到用户电子邮件时会出现延迟,安全代码的6分钟窗口就会变得太短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代码的此时间窗口?我认为您必须在
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));