Setting Session Timeout in ASP.net Core 3.1

Viewed 1100

I have a web app .net core 3.1 razor pages. I have the session timeout set to 30 minutes, however it logs the current user out after 10 minutes of inactivity. The global IIS settings are set for 60 minutes on the server. Here is my code in Startup.cs. What am I missing? Any help is greatly appreciated. Thanks!

     public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddControllers().AddNewtonsoftJson(options =>
         options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
        );
        services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
        services.AddTransient<IMemberService, MemberService>();
        services.AddTransient<INewsService, NewsService>();
        services.AddTransient<IUserCardService, UserCardService>();
        services.AddTransient<IUsernameService, UsernameService>();
        services.AddTransient<ILinkService, LinkService>();
        services.AddTransient<INotificationService, NotificationService>();

        services.AddTransient<IEmailSender, EmailSender>();
        services.Configure<AuthMessageSenderOptions>(Configuration);

        services.AddDbContext<DefaultContext>(options =>
         options.UseSqlServer(
         Configuration.GetConnectionString("DefaultContextConnection")));

        services.AddControllersWithViews()
                .AddSessionStateTempDataProvider();

        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential
            // cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            // requires using Microsoft.AspNetCore.Http;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        services.AddDistributedMemoryCache();

        services.AddSession(options =>
        {
            options.IdleTimeout = TimeSpan.FromMinutes(30);
            options.Cookie.HttpOnly = true;
            options.Cookie.IsEssential = true;
            
        });

        services.AddRazorPages()
                .AddRazorRuntimeCompilation()
                .AddSessionStateTempDataProvider();

        services.AddSession();
    }

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseBrowserLink();
            //app.UseDatabaseErrorPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();

        app.UseRewriter();

        app.UseStaticFiles();

        app.UseCookiePolicy();

        app.UseRouting();
       
        app.UseAuthentication();
        app.UseAuthorization();

        app.UseSession();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapRazorPages();

        });



    }
0 Answers
Related