using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Options; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using SZUAbsolventenverein.Module.AdminModules.Models; using SZUAbsolventenverein.Module.AdminModules.Repository; namespace SZUAbsolventenverein.Module.AdminModules.Server.Startup { public class DataProtectionTokenOptionsConfigurator : IConfigureOptions { private readonly IAdminSettingsRepository _repo; public DataProtectionTokenOptionsConfigurator(IAdminSettingsRepository repo) { _repo = repo; } public void Configure(DataProtectionTokenProviderOptions options) { // default fallback options.TokenLifespan = TimeSpan.FromHours(2); try { Console.WriteLine("Setting DPTPO: "); AdminSetting settings = _repo.GetAdminSetting(); Console.WriteLine("Setting DPTPO: " + settings); if (settings != null && settings.TokenLifetime > 0) { Console.WriteLine("Setting DPTPO: " + settings.TokenLifetime); options.TokenLifespan = TimeSpan.FromDays(settings.TokenLifetime); } } catch { // DB not ready / read failed — keep default } } } }