使用当前的ASP.NET身份处理代码时,可以在startup.auth中设置一堆选项,以处理如何处理cookie的表现。
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
SlidingExpiration = true,
ExpireTimeSpan = TimeSpan.FromMinutes(GetExpiryMinutesFromConfig()),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromSeconds(60),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
如果用户登录,则如果关闭整个浏览器窗口,则将删除此cookie。但是,如果他们只是关闭选项卡,cookie仍然存在。我找不到控制此的CookieAuthenticationOptions
值。
我怀疑从UI的角度来看,关闭标签时会删除煮熟的烹饪可能是困难的,并且是不希望的(例如,如果有多个选项卡打开,该怎么办(。但实际上是可能的。
cookie可以指定有效期时间。如果不是 - 它被称为session cookie,并且将通常生活在浏览器内存中,直到浏览器关闭为止。如何处理会话cookie的详细信息特定于浏览器。例如,在Google Chrome中,如果您使用"继续我离开的地方"选项,则浏览器实际上将在关闭浏览器时将Session Cookie保存到磁盘,并在重新打开时将其还原。
也就是说 - 我不知道有任何浏览器可以通过在标签上删除cookie来处理会话cookie。当然,ASP.NET(或浏览器设置以外的其他任何地方(肯定没有任何选项来启用此类行为。