环境: ASP.NET Core 2.0, 使用cookie的身份验证。
在 Startup.ConfigureServices()
中有以下代码:
services.ConfigureApplicationCookie(options => {
options.ExpireTimeSpan = TimeSpan.FromDays(14);
options.Cookie.Expiration = TimeSpan.FromDays(14);
});
第一个来自
CookieAuthenticationOptions
,第二个来自CookieBuilder
。文档还提到Microsoft.AspNetCore.Http.CookieOptions.Expires
(尽管它在该lambda中不可用)。这些之间有什么区别?在Core2中设置过期时间的正确方法是什么?
options.ExpireTimeSpan = TimeSpan.FromDays(14);
,正如文档站点上的某一页所述。但是存在三种不同的方法让我相信它们之间存在差异。身份验证一直很混乱(并且从未得到适当的记录),因此我非常想了解更多关于这个问题的信息。感谢您的真实世界确认,它有所帮助!我怀疑在使用Identity时和不使用Identity时使用cookie存在差异-您正在使用不带Identity的cookie,而我使用带Identity的cookie,因此也许在那里有一些线索... - grokkyAddIdentity()
,而不需要.AddAuthentication().AddCookie(...)
。 - grokkyAddIdentity
选项中找不到options.Cookie.Expiration
。我没有收到任何投诉或错误信息,所以我就让它保留了下来。我可能会在Identity代码中查找,看看这可能会引起什么影响(如果有的话)。 - R. Richardsservices.ConfigureApplicationCookie
的代码块,已经进行了测试。虽然我没看到应用程序行为上的任何变化,但这只相当于简单的注销和重新登录。更多信息。 - R. RichardsOptionsValidationException: Cookie.Expiration被忽略,请使用ExpireTimeSpan。
- Mugen