在我的MVC Startup.Auth.cs文件中,有以下代码:
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator
.OnValidateIdentity<ApplicationUserManager, ApplicationUser, int>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentityCallback: (manager, user) =>
user.GenerateUserIdentityAsync(manager),
getUserIdCallback: (id) => (id.GetUserId<int>()))
}
如果我理解正确,登录cookie将在30分钟后过期。这意味着用户将被迫在30分钟内重新登录。如果这是正确的,那么让用户选择&#34;记住我&#34;如果登录cookie在30分钟后到期,则在登录页面上?
答案 0 :(得分:0)
您展示的代码片段与&#34;记住我&#34;没有太大关系。 SecurityStampValidator
实际上是在检查创建的cookie是否仍对数据库中的用户记录有效。 validateInterval: TimeSpan.FromMinutes(30)
定义了根据数据库检查cookie的频率间隔。
Identity Framework创建的Cookie包含的数据通常足以使用而无需在每个HTTP请求上返回数据库,因此在每次请求时都不会使用DB检查性能cookie。但是,您可以通过更改数据库中的SecurityStamp
来使所有用户cookie无效。而SecurityStampValidator
检查了这一点。但是,如果用户登录后30分钟内没有任何更改,则不会注销。只会更新cookie的值,但用户仍将登录。
我希望现在更清楚了。