ASP.NET 身份二元代码的最大过期时间是多少?

Chr*_*isC 2 asp.net two-factor-authentication asp.net-identity

我试图找出 ASP.NET Identity 2.1 中两因素身份验证代码的最大值是多少。

我尝试过设置以下内容:

app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(60))
Run Code Online (Sandbox Code Playgroud)

但代码的有效期并不长,所以我想知道这是否是 cookie 本身的过期时间,而不是它包含的代码的过期时间。我想知道根据验证码的生成方式,验证码的持续时间是否存在技术限制。

所有示例都只是坚持 5 分钟,所以我想知道这是否是实际的限制。我在某处读到,除了 5 分钟之外还有额外的 90 秒的时间,所以这似乎是我得到的。

我注意到这个问题(ASP.Net Identity 2, Two Factor Security Code timespan)正在寻求做同样的事情,但没有一个可接受的答案,而且它已经有将近 1.5 年的历史了,所以我想我会从一个限制开始问在我费心尝试根据该答案更改它之前,请先了解一下我的观点。

Chr*_*isC 7

看来答案是否定的,我无法更改该代码的到期时间。

底层令牌提供者是TotpSecurityStampBasedTokenProvider,它使用Rfc6238AuthenticationService,在内部,如果我没读错的话,它会将到期时间硬编码为 3 分钟,最大时间差异为 90 秒。

我认为我更改的到期日期仅更改了包含双因素代码的 cookie 的到期日期,而不是代码到期日期本身。我们验证了这一点,因为当使用有效 cookie 的代码过期时,您返回的错误消息与使用过期代码和过期 cookie 返回的错误消息不同。

我只是认为非常令人失望的是,在通话的帮助文本中没有更好地解释这一点UseTwoFactorSignInCookie