Asp.net 连续每日用户访问

Asp.net 连续每日用户访问,asp.net,asp.net-mvc,asp.net-mvc-5,Asp.net,Asp.net Mvc,Asp.net Mvc 5,我有一个Asp.NETMVC5网站,我试图获取用户访问我网站的连续天数。StackOverflow具有此功能,并在打开您的个人资料时报告。在AccountController中执行此操作及其登录操作非常简单: if (dbUser.LatestLogin == null || ((DateTime)dbUser.LatestLogin).Date != DateTime.UtcNow.Date) { if (dbUser.LatestLogin != null && (D

我有一个Asp.NETMVC5网站,我试图获取用户访问我网站的连续天数。StackOverflow具有此功能,并在打开您的个人资料时报告。在AccountController中执行此操作及其登录操作非常简单:

if (dbUser.LatestLogin == null || ((DateTime)dbUser.LatestLogin).Date != DateTime.UtcNow.Date)
{
    if (dbUser.LatestLogin != null && (DateTime.UtcNow.Date - ((DateTime)dbUser.LatestLogin).Date).TotalDays == 1)
        dbUser.Consecutive++;
    else
        dbUser.Consecutive = 1;
}
dbUser.LatestLogin = DateTime.UtcNow;
但是,我希望跟踪选中“记住我”复选框以保持登录的用户。我该怎么做

注:
我想到的一件事是创建一个全局属性,并在ifUser.Identity.IsAuthenticated的每个操作中执行此操作,但我认为这不是一个好主意,因为我必须为每个请求加载用户信息并运行检查。效率在这里非常重要。

您可以创建一个执行此操作的操作,并在_Layout.cshtml中调用它。缺点是,这会在每次页面请求时影响数据库。您可以在会话对象中设置一个标志,以标记您已经增加了该值。您需要将其与Request.IsAuthenticated配对。