在持久cookie登录期间调用什么处理程序/方法?

时间:2013-11-10 00:05:12

标签: cookies asp.net-mvc-5 asp.net-identity

我有一个使用ASP.NET Identity配置的项目,并且正在使用“本地帐户”选项。我修改了上下文来收集额外的数据,一切都很好。一个这样的字段用于存储在Login的Post ActionResult中设置的用户LastLoginDate。

问题是,在用户选择“记住我”选项后,没有任何常用的处理程序或方法被命中。我已经逐步尝试找到它们而不能这样我认为我需要覆盖一种方法。任何有关这方面的帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分: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
});