使用当前的Asp.Net Identity处理代码时,可以在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的角度来看,当关闭标签时删除熟食可能是困难的并且是不合需要的(例如,如果打开多个标签,该怎么办)。但实际上是否可能。
答案 0 :(得分:3)
Cookie可以指定到期时间。如果没有 - 它被称为会话cookie,并且通常将存在于浏览器内存中,直到浏览器关闭。如何处理会话cookie的详细信息是特定于浏览器的。例如,在谷歌浏览器中,如果您使用&#34;继续我离开的地方&#34;选项,浏览器实际上会在关闭浏览器时将会话cookie保存到磁盘,并在重新打开时恢复它们。
那就是说 - 我不知道有任何浏览器通过在关闭标签上删除它们来处理会话cookie。当然,在asp.net(或除浏览器设置之外的任何其他地方)中都没有任何选项可以启用此类行为。