我在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更新时,问题出现了!
我真的很困惑。任何人都可以告诉我如何解决这个问题,为什么它只在某些浏览器中?