我有一个使用ASP.NET Identity配置的项目,并且正在使用“本地帐户”选项。我修改了上下文来收集额外的数据,一切都很好。一个这样的字段用于存储在Login的Post ActionResult中设置的用户LastLoginDate。
问题是,在用户选择“记住我”选项后,没有任何常用的处理程序或方法被命中。我已经逐步尝试找到它们而不能这样我认为我需要覆盖一种方法。任何有关这方面的帮助将不胜感激。
谢谢!
答案 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
});