我用过:
services.AddAuthenticationCore().ConfigureApplicationCookie(o =>
{
o.ExpireTimeSpan = TimeSpan.FromHours(1);
o.SlidingExpiration = true;
});
在ASP.NET Core MVC项目的 Startup.cs 中设置我的身份验证Cookie ExpireTimeSpan
。
我可以看到登录后在网页浏览器中正确设置了cookie过期时间,但每次30分钟后自动注销,即使我每隔10秒刷新一次网站。
如果我将ExpireTimeSpan
设置为少于30分钟,则可以正确超时,但过期时间无法刷新。
为什么是30分钟?我在哪里可以更改30分钟超时设置?或者它是在IIS中设置的?
答案 0 :(得分:2)
为什么是30分钟?
这是ASP.NET核心身份的默认设置。
我在哪里可以更改30分钟超时设置?或者它是在IIS中设置的?
没有。在IdentityRegistrar.Register
之后致电ConfigureApplicationCookie
:
public IServiceProvider ConfigureServices(IServiceCollection services)
{
// ...
IdentityRegistrar.Register(services); // No change
AuthConfigurer.Configure(services, _appConfiguration); // No change
services.ConfigureApplicationCookie(o =>
{
o.ExpireTimeSpan = TimeSpan.FromHours(1);
o.SlidingExpiration = true;
});
// ...
}
“如果您在
services.AddIdentity
之前定义它,您的自定义值将被覆盖。”https://github.com/aspnet/Identity/issues/1389#issuecomment-324257591