Authentication 如何更新上次登录日期,如果;“记住我”;设置

Authentication 如何更新上次登录日期,如果;“记住我”;设置,authentication,login,membership,Authentication,Login,Membership,当用户登录到我的站点时,访问日期将在数据库(用户表)中盖章。这由(自定义)成员资格提供程序处理。但是,如果用户在登录时选中“记住我?”选项,则(自然)不会提示他们在后续访问中登录。由于在这种情况下没有使用成员资格提供者,所以数据库中不会更新上次登录日期 使用表单身份验证,我如何确保在每次新访问站点时更新上次登录日期,而不是在他们实际登录时更新?有什么我可以参与的活动来实现这一点吗 我无法使用会话状态,因为它在我正在开发的网站中被完全禁用(会话模块已被删除) 谢谢我假设您正在使用cookies(否

当用户登录到我的站点时,访问日期将在数据库(用户表)中盖章。这由(自定义)成员资格提供程序处理。但是,如果用户在登录时选中“记住我?”选项,则(自然)不会提示他们在后续访问中登录。由于在这种情况下没有使用成员资格提供者,所以数据库中不会更新上次登录日期

使用表单身份验证,我如何确保在每次新访问站点时更新上次登录日期,而不是在他们实际登录时更新?有什么我可以参与的活动来实现这一点吗

我无法使用会话状态,因为它在我正在开发的网站中被完全禁用(会话模块已被删除)


谢谢

我假设您正在使用cookies(否则我看不出“记住我”会起什么作用)

当用户登录时,设置两个cookie,一个是永久的(如果选中了“记住我”),另一个是临时的(仅此会话)。第二个是用来授权用户的


因此,在用户需要登录的页面上,查找会话cookie。如果找到,请按正常方式继续。如果未找到,则查找永久cookie;如果找到,则查找用户,设置登录日期,并设置会话cookie。(如果找不到永久cookie,则表示他没有登录)。

假设您正在谈论ASP.NET 2.0(给出了会员资格提供商的评论)

无论在何处检查cookie以查看是否应自动登录用户,都应调用成员资格提供程序的GetUser函数,该函数使用布尔值更新用户的活动日期

根据:

MembershipProvider.GetUser方法


获取唯一用户标识符和布尔值作为输入,该值指示是否更新用户的LastActivityDate值以显示用户当前处于联机状态。GetUser方法返回一个MembershipUser对象,该对象由指定用户的数据源中的当前值填充。如果在数据源中找不到用户名,则GetUser方法返回null(在Visual Basic中为Nothing)

谢谢你的及时回复。我正在使用ASP.NET3.5。我不是自己检查cookie-.Net会自动处理它。我不知道如何/在何处连接到.Net执行cookie检查的步骤。我使用了一个变体:当用户第一次进行身份验证时,我创建一个非持久性cookie。拦截后续的身份验证请求,如果cookie不存在,则创建cookie并更新上次登录数据。