Phi*_*ler 6 authentication asp.net-mvc design-patterns
我正在设计一个功能来存储ASP.Net(MVC)应用程序中的最后一个登录日期/时间.
我的第一直觉是将数据库中的值存储在用户的配置文件记录中,并在成功登录时将值更新为当前日期/时间.当然,只要我记录该值,所有页面都会显示此会话成功登录的日期和时间.
计划B:记录上一个会话的字段和记录此会话的字段.登录时,将此会话的日期/时间保存到"当前"字段,并将先前在此处找到的值移动到"上一个"字段中(显然).正是这个字段提供了我"最后登录"的值.
这是最好的方法还是可以更优雅地完成?
另一种方法是,在登录时,从用户记录中读取上次登录日期/时间并将其保存到会话或会话cookie中.然后使用当前日期/时间更新用户记录.然后在您的页面上读取存储在会话/ cookie中的值.
会话到期时将删除旧时间,这通常是用户需要重新登录的时间.它还具有速度和缓存的优势,因为它是从会话/ cookie中读取的.
但这取决于您的设置和应用程序是否可以.
UPDATE
只是要清楚......每次用户登录时,当前日期/时间都会持久保存到数据库用户表中.但是在将日期/时间写入用户表之前,会读取现有值并将其保存到会话或曲奇饼.然后,使用当前时间戳更新用户表中的日期/时间值.
如果您的身份验证票证持续时间超过会话,则使用cookie方法并将cookie的到期时间设置为身份验证票证的相同到期日期.