#c# #.net-core #asp.net-core-3.1 #session-timeout
#c# #.net-ядро #asp.net-core-3.1 #время ожидания сеанса
Вопрос:
У меня есть веб-приложение .net core 3.1 razor pages. У меня время ожидания сеанса установлено на 30 минут, однако он выводит текущего пользователя из системы после 10 минут бездействия. Глобальные настройки IIS установлены на сервере на 60 минут. Вот мой код в Startup.cs. Чего мне не хватает? Любая помощь приветствуется. Спасибо!
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();
});
}