ASP Identity CookieAuthentication不起作用



所以我有一个MVC5 web应用程序,我使用内置的ASP.Identity框架进行身份验证。我想让我的用户保持他们的登录状态30天。

这是我在Startup.Auth.cs:中的代码

app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                CookieName = "Test",
                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.FromDays(30),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                },
                ExpireTimeSpan = TimeSpan.FromDays(30)
            });     

我在登录后检查了cookie,确实有效期为30天,但几分钟/小时后,当我试图再次访问该网站时,登录状态消失了。知道为什么吗?

OnValidateIdentity中似乎有一个错误。每当它尝试重新生成cookie时,它都会将IsPersistent设置为false,即使原始cookie是持久的。

如果我没有错的话,在关闭并重新打开浏览器后,您可能会面临这个问题。这个问题可以通过手动添加IsPersistent声明来解决,请尝试查看此链接

相关内容

  • 没有找到相关文章

最新更新