ASP.Net OWIN身份验证 - 如何在浏览器选项卡关闭时删除UseCookieAuthentication?

时间:2018-02-08 11:46:41

标签: c# asp.net cookies asp.net-identity owin

使用当前的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的角度来看,当关闭标签时删除熟食可能是困难的并且是不合需要的(例如,如果打开多个标签,该怎么办)。但实际上是否可能。

1 个答案:

答案 0 :(得分:3)

Cookie可以指定到期时间。如果没有 - 它被称为会话cookie,并且通常将存在于浏览器内存中,直到浏览器关闭。如何处理会话cookie的详细信息是特定于浏览器的。例如,在谷歌浏览器中,如果您使用&#34;继续我离开的地方&#34;选项,浏览器实际上会在关闭浏览器时将会话cookie保存到磁盘,并在重新打开时恢复它们。

那就是说 - 我不知道有任何浏览器通过在关闭标签上删除它们来处理会话cookie。当然,在asp.net(或除浏览器设置之外的任何其他地方)中都没有任何选项可以启用此类行为。