存储用户上次登录信息的好设计模式是什么?

Phi*_*ler 6 authentication asp.net-mvc design-patterns

我正在设计一个功能来存储ASP.Net(MVC)应用程序中的最后一个登录日期/时间.

我的第一直觉是将数据库中的值存储在用户的配置文件记录中,并在成功登录时将值更新为当前日期/时间.当然,只要我记录该值,所有页面都会显示会话成功登录的日期和时间.

计划B:记录上一个会话的字段和记录此会话的字段.登录时,将此会话的日期/时间保存到"当前"字段,并将先前在此处找到的值移动到"上一个"字段中(显然).正是这个字段提供了我"最后登录"的值.

这是最好的方法还是可以更优雅地完成?

Dav*_*enn 5

另一种方法是,在登录时,从用户记录中读取上次登录日期/时间并将其保存到会话或会话cookie中.然后使用当前日期/时间更新用户记录.然后在您的页面上读取存储在会话/ cookie中的值.

会话到期时将删除旧时间,这通常是用户需要重新登录的时间.它还具有速度和缓存的优势,因为它是从会话/ cookie中读取的.

但这取决于您的设置和应用程序是否可以.

UPDATE

只是要清楚......每次用户登录时,当前日期/时间都会持久保存到数据库用户表中.但是在将日期/时间写入用户表之前,会读取现有值并将其保存到会话或曲奇饼.然后,使用当前时间戳更新用户表中的日期/时间值.

如果您的身份验证票证持续时间超过会话,则使用cookie方法并将cookie的到期时间设置为身份验证票证的相同到期日期.