1

我有一个配置了 ASP.NET 标识并使用本地帐户选项的项目。我已经修改了上下文以收集更多数据,并且一切正常。一个这样的字段用于存储用户 LastLoginDate,该用户在登录的 Post ActionResult 中设置。

问题是,在用户选择了“记住我”选项后,通常的处理程序或方法都没有被击中。我已经逐步尝试找到它们但找不到,所以我认为有一种方法需要我重写。对此的任何帮助将不胜感激。

谢谢!

4

1 回答 1

4

当您使用本地帐户时,当用户登录时,OWIN 将创建一个名为 .AspNet.ApplicationCookie 的 cookie。此 cookie 将存储在浏览器中。cookie 将设置为在浏览器会话结束时过期,或者如果用户选择“记住我”选项,则默认为登录后 14 天。如果 cookie 存在于浏览器中并且未过期,则用户已登录并且不必登录。我想这就是您所看到的,即用户根本没有登录,因为默认值是14 天和滑动到期,这意味着选择“记住我”并每 14 天至少使用一次该网站的用户将保持登录状态。

您可以通过将选项添加到在 Startup.Auth.cs 中初始化的 CookieAuthenicationOptions 来更改默认值。即将 cookie 的到期时间设置为一周而不使用滑动到期时间,您可以这样做:

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
      LoginPath = new PathString("/Account/Login"),
      ExpireTimeSpan = new TimeSpan(7, 0, 0, 0),
      SlidingExpiration = false
});
于 2013-11-10T10:44:11.320 回答