web-dev-qa-db-ja.com

ASP Identity CoreGeneratePasswordResetTokenAsyncの有効期限が切れました

.NET Core2.1でIdentityServer 4プロジェクトをセットアップしましたが、すべてが機能していますが、ユーザーマネージャーを使用してリセットパスワードトークンを生成すると、トークンは24時間後に期限切れになりますが、これを変更して48時間にすることはできますか?

リセットトークンを送信する私のコードは次のようになります。

var code = await _userManager.GeneratePasswordResetTokenAsync(user);

var callbackUrl = url.EmailConfirmationLink(user.Id, code, scheme);

私のConfigureServicesは次のようになります。

   services.AddIdentity<ApplicationUser, IdentityRole>(config =>
        {
            config.SignIn.RequireConfirmedEmail = true;
        })
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();

ありがとう:)

6
Scott L

Startup.csクラスのConfigureServices()メソッドに次のコードを追加すると役立つはずです。

services.Configure<DataProtectionTokenProviderOptions>(options =>
    options.TokenLifespan = TimeSpan.FromDays(2));

デフォルトのトークンの有効期間は24時間(1日)です。 github および TokenOptions を参照してください

2