在某些浏览器中,不同的ASP.NET标识cookie会过期

时间:2017-05-15 07:06:00

标签: asp.net-mvc login asp.net-identity expired-cookies

我在ASP.NET Identity 2中遇到了一个奇怪的问题。我使用过Cookie ASP.NET身份验证2。

app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login"),
            Provider = new CookieAuthenticationProvider
            {
                // Enables the application to validate the security stamp when the user logs in.
                // This is a security feature which is used when you change a password or add an external login to your account.  
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                    validateInterval: TimeSpan.FromMinutes(30),
                    regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
            },
            SlidingExpiration = true,
            ExpireTimeSpan = TimeSpan.FromMinutes(60)
        });  

除了某些浏览器中的Cookie过期时间,每件事情都可以。我知道我必须使用CookieAuthenticationOptions.ExpireTimespan来设置cookie有效的时间,并将其设置为一小时(ExpireTimeSpan = TimeSpan.FromMinutes(60))。在某些浏览器中它可以正常工作,但在其他一些浏览器中,它每五分钟就会过期,用户注销并且必须每5分钟再次登录!

如果在我的项目或IIS设置中出现问题,为什么在某些浏览器中它可以正常工作而没有任何问题?我甚至检查了浏览器的版本,它们是相同的!我甚至猜到这可能是因为这些浏览器上安装了一个插件,所以我卸载了该浏览器并再次安装它!但问题仍然存在。

有趣的是,在一个系统中,它在Chrome上是可以的,但在IE和Firefox中存在问题。或者在另一台计算机上,它可以在Firefox上运行,但是当Firefox更新时,问题出现了!

我真的很困惑。任何人都可以告诉我如何解决这个问题,为什么它只在某些浏览器中?

0 个答案:

没有答案