无论IdealTimout设置如何,ASP.NET核心会话都会不断过期

时间:2018-10-27 16:13:40

标签: asp.net-core .net-core asp.net-core-mvc asp.net-core-1.0 coreclr

我有asp.net core 1.1应用程序,并且我将会话超时设置为3个小时。因此,我希望会话中的数据将保留3个小时。

    public void ConfigureServices(IServiceCollection services)
    {
        // authorization                      
        services.AddAuthorization();
        services.AddMvc(config =>
        {
            var policy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .Build();
        })
        services.AddKendo();
        services.AddSession();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {            
        //configure identity server 3
        app.UseIdentityServer(Configuration["Identity:Authority"],
            Configuration["Identity:ClientId"],
            Configuration["Identity:PostLogoutRedirectUri"],
            domainService);

        app.UseSession(new SessionOptions()
        {
            IdleTimeout = new TimeSpan(3, 0, 0)
        });
        app.UseMvc(routes =>
        {                
        });

        // Configure Kendo UI
        app.UseKendo(env);

    }

但是,在保持理想状态20分钟之后,用户会话会超时

基于documentation

  

该应用使用IdleTimeout属性来确定会话多长时间   可以在服务器缓存中的内容被放弃之前处于空闲状态。   此属性与Cookie的有效期无关。

因此,数据超时,而会话cookie超时。但是,基于issue 169,您无法设置会话Cookie的超时时间。

我的应用程序也正在使用IdentityServer 3,并创建具有较长超时(超过3小时)的身份验证cookie。而且我不认为身份验证cookie与会话cookie有任何关系。

问题
我还需要其他与​​会话相关的其他设置吗?
我如何检查特定Cookie的到期时间。在服务器上,我在Request.Cookies中看不到该信息。它只是键值对。

0 个答案:

没有答案