首页 > 解决方案 > 如何设置 CookieExpiration 值

问题描述

我想从 DB 设置 CookieExpiration 值,但是,我收到一个错误:

System.InvalidOperationException: 'Unable to resolve service for type 'EMS.Services.Interfaces.ISettingsService' while attempting to activate 'EMS.Startup'.'

这是来自 DB 的值:

_settingsService.GetTheSettings().CookieExpirationPeriod

启动:

public ISettingsService _settingsService;
public Startup(IConfiguration configuration, ISettingsService settingsService)
{
    Configuration = configuration;
    _settingsService = settingsService;
}

public IConfiguration Configuration { get; }

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
    // Connection to DB
    services.AddDbContext<EMSDbContext>(x => x.UseSqlServer(Configuration.GetConnectionString("DBConnection")));

    // Services for Sign in - Signout - Access Denied
    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options =>
    {
        options.LoginPath = "/Auth/SignIn";
        options.LogoutPath = "/Auth/SignOut";
        options.AccessDeniedPath = "/Auth/AccessDenied";
        options.ExpireTimeSpan = TimeSpan.FromHours(_settingsService.GetTheSettings().CookieExpirationPeriod);
    });

标签: c#asp.net.netasp.net-mvc

解决方案


推荐阅读