C# 增加.net core 3.1中的令牌寿命

C# 增加.net core 3.1中的令牌寿命,c#,asp.net-core-2.1,asp.net-core-3.1,asp.net-core-identity,.net-core-3.1,C#,Asp.net Core 2.1,Asp.net Core 3.1,Asp.net Core Identity,.net Core 3.1,如何配置.NET Core 3.1中生成的令牌的TokenLifespan?我正在使用以下代码,但它不起作用,并且仍在使用1天标记寿命,这是默认值 public void ConfigureServices(IServiceCollection services){ //... services.Configure<DataProtectionTokenProviderOptions>(options => { options.Token

如何配置.NET Core 3.1中生成的令牌的
TokenLifespan
?我正在使用以下代码,但它不起作用,并且仍在使用1天
标记寿命
,这是默认值

public void ConfigureServices(IServiceCollection services){
    //...
    services.Configure<DataProtectionTokenProviderOptions>(options =>
    {
        options.TokenLifespan = TimeSpan.FromDays(5);
    });
    //...
}
public void配置服务(IServiceCollection服务){
//...
配置(选项=>
{
options.TokenLifespan=时间跨度.FromDays(5);
});
//...
}
当有一个内置选项可以通过上面给出的代码更改时,我对通过自定义类进行配置不感兴趣,但我不知道我做错了什么,它覆盖了我定义的
TokenLifeSpan
值。

显示了如何更改电子邮件令牌寿命,您需要添加一个自定义的
DataProtectorTokenProvider
DataProtectionTokenProviderOptions

github问题也是如此:


如果您使用的提供商基于TotpSecurity SampbasedTokenProvider,即EmailTokenProvider或PhoneNumberTokenProvider,那么我认为这是不可能的

Totp提供商生成6位代码,使用寿命为3分钟,差异为90秒

如果您需要更长的OTP,您可能必须找到创建自己的OTP的方法

编辑


查看一篇关于如何覆盖Rfc6238AuthenticationService以延长/缩短令牌寿命的帖子

很抱歉造成混淆。我已经更新了我的问题。在您共享的两个链接中,对于延长我正在使用的总体寿命给出了相同的答案,但它对我不起作用,并且仍然使用默认值1天。您找到解决方案了吗?我面临着同样的问题,就覆盖默认到期时间的解决方案而言,不,我没有找到解决方案。但我添加了一个重新生成令牌的功能,允许用户在需要时再次生成令牌。根据计算,差异实际上是9分钟。