C# ASP.NET Core 2.x会话空闲超时不工作
使用cookie身份验证和托管在IIS中的ASP.NET Core 2.x构建的应用程序 我正在尝试将cookie过期时间设置为120分钟,空闲超时时间设置为30分钟。 即,当用户浏览页面和提交表单时,如果用户离开页面/表单30分钟,并尝试再次与页面或表单交互,则需要验证(需要登录),并应返回options.LoginPath值 我曾尝试将空闲超时设置为10秒的较低值,并查看了其他几篇stackoverflow、.Net和Microsoft文章,以寻找合适的解决方案 如果有任何建议或其他事情,我将不胜感激 配置服务方法:C# ASP.NET Core 2.x会话空闲超时不工作,c#,asp.net-core,cookies,session-cookies,C#,Asp.net Core,Cookies,Session Cookies,使用cookie身份验证和托管在IIS中的ASP.NET Core 2.x构建的应用程序 我正在尝试将cookie过期时间设置为120分钟,空闲超时时间设置为30分钟。 即,当用户浏览页面和提交表单时,如果用户离开页面/表单30分钟,并尝试再次与页面或表单交互,则需要验证(需要登录),并应返回options.LoginPath值 我曾尝试将空闲超时设置为10秒的较低值,并查看了其他几篇stackoverflow、.Net和Microsoft文章,以寻找合适的解决方案 如果有任何建议或其他事情,我
services.AddAuthentication(选项=>
{
options.DefaultAuthenticateScheme=CookieAuthenticationDefaults.AuthenticationScheme;
options.defaultsignnscheme=CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme=CookieAuthenticationDefaults.AuthenticationScheme;
}).AddCookie(选项=>
{
options.Cookie.HttpOnly=false;
options.Cookie.Expiration=TimeSpan.FromMinutes(120);
options.ExpireTimeSpan=TimeSpan.FromMinutes(120);
options.AccessDeniedPath=新路径字符串(“/Error”);
options.LoginPath=“/Account/Login”/>这决定将用户发送到哪个页面
//当cookie过期时,用户将返回到登录页面
}
);
//services.AddMemoryCache();
services.AddSession(选项=>
{
options.IdleTimeout=TimeSpan.FromSeconds(10);
options.Cookie.IsEssential=true;
});
配置方法包括:
app.UseAuthentication();
app.UseSession();
app.UseCookiePolicy();
编辑27/04:
有什么建议我可以在IIS中尝试其他方法吗?是否尝试在代码级别更改空闲超时?您是否尝试过修改IIS中的空闲超时?尝试在代码级别更改它,因为我们尚未确认是否将其保留在IIS中或移动到类似Azure的位置。如何使用Web.config,因为这是一个.NET Core应用程序,它在发布之前没有Web.config,并且仅引用.NET Core设置。根据options.Cookie.Expiration代码行,我确实有一个会话超时;只是AddSessionOptions中的options.IdleTimeout行的行为与我预期的不同,我认为您的IIS设置正在覆盖代码更改?