gpt4 book ai didi

c# - 为什么 ASP.NET 的“记住我”功能如此健忘?

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:42 27 4
gpt4 key购买 nike

我有一个使用 ASP.NET Identity 2.2 的 ASP.NET MVC 5 项目。我使用 Visual Studio 中的“个人用户帐户”身份验证选项进行设置。我可以毫无问题地登录。如果我在登录后没有单击记住我并关闭浏览器,则重新打开时不会记住我的凭据。如果我点击记住我并在登录后关闭浏览器,我的凭据会在重新打开时被记住。到目前为止一切顺利。

当我单击“记住我”、登录、关闭浏览器并长时间保持关闭状态时(我的测试让我认为它必须超过 20 分钟),问题就出现了。当我这样做时,我的凭据被忘记了,我必须重新登录。为什么会这样?

当我在 20 分钟后再次打开浏览器时,AspNet.ApplicationCookie cookie 仍然存在并且过期时间大约是两周后。

我看到其他文章提到了 UseCookieAuthentication 方法调用,因此我将其包含在下面。我相信我为此使用了默认值。

            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))
}
});

最佳答案

20分钟是一个闲置的AppDomain回收的时间。如果您有一个不同的帐户连接到您的页面,为了防止它闲置,它可能会记住您更长时间。

关于c# - 为什么 ASP.NET 的“记住我”功能如此健忘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48481712/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com