gpt4 book ai didi

asp.net-mvc - 为什么在 asp.net 身份中注销早于 ExpireTimeSpan?

转载 作者:行者123 更新时间:2023-12-01 19:53:21 37 4
gpt4 key购买 nike

我正在开发一个使用 asp.net 身份的 asp.net mvc 应用程序。
Startup.Auth.cs 文件中,我将 ExpireTimeSpan 设置为 20 天,但是当我登录我的应用程序时,不到 20 天我的应用程序就会注销,我必须登录在阿吉安!

Startup.Auth.cs

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/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, User>(
validateInterval: TimeSpan.FromMinutes(0),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
},
ExpireTimeSpan = TimeSpan.FromDays(20),
SlidingExpiration = true
});

登录操作中:

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: true);
<小时/>

更新
当我登录时,会生成 .AspNet.ApplicationCookie ,并将其过期日期设置为“20”天后,当我第二天打开网站时,我会注销,但 cookie 仍然存在。

enter image description here

这个问题的原因是什么?
提前致谢。

最佳答案

以下是比预期更早退出的几个原因:

  • 同一域上有多个 Web 应用程序,并且所有应用程序都具有相同的 Cookie 名称(Cookie 名称冲突)。在本例中,应用程序 A 会覆盖应用程序 B 的 cookie。

  • validateInterval 设置为零/TimeSpan.FromMinutes(0) 时,所有对 UpdateSecurityStamp 的调用都将强制用户立即注销并重新登录,包括UserManager.CreateAsyncUserManager.RemovePasswordAsyncUserManager.UpdatePasswordUserManager.RemoveLoginAsyncUserManager.ChangePhoneNumberAsync/SetPhoneNumberAsyncUserManager.SetTwoFactorEnabledAsyncUserManager.SetEmailAsync。这意味着如果您更新用​​户的属性,将调用 UpdateSecurityStamp

  • 如果您更新服务器上的.NET Framework,它也会覆盖machine-key。更改此设置会将所有已发布的 cookie 标记为无效。 Machine-Key 是一组用于加密和解密 cookie 的 key 。如果您在负载均衡器后面运行,您将需要确保网络场使用一致的机器 key
  • 如果您使用 Cookie 存储了太多用户声明,它们将会变得很大(大于约 5K),并且某些浏览器会拒绝它们。因此请检查发出的 cookie 的大小。
  • 用户可以将浏览器设置为在关闭浏览器时删除 Cookie(私密浏览)。

关于asp.net-mvc - 为什么在 asp.net 身份中注销早于 ExpireTimeSpan?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44994436/

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