跟踪每日用户访问量

时间:2014-07-11 09:31:43

标签: asp.net asp.net-mvc authentication

我有一个Asp.Net MVC 5网站。我想跟踪用户访问我网站的连续天数。目前我有一个代码可以在Login操作中对此进行跟踪,但我无法跟踪访问过该网站的用户并检查过"记住我" 在登录页面中。毋庸置疑,我正在寻找一种方法来实现这一目标,同时尽可能降低性能。

2 个答案:

答案 0 :(得分:0)

试试这样, 跟踪用户登录时,可能会将用户的IP地址或用户名存储到数据库中。

您可以将日期和时间与IP和用户名一起保存。

从中您可以跟踪访问过该网站的用户。

答案 1 :(得分:0)

转到Models文件夹 - > IdentityModels.cs
ApplicationUser 类中,找到 GenerateUserIdentityAsync 方法。它被称为straignt signin和cookies one。

public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {  
        // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        // Add custom user claims here

        return userIdentity;
    }


Cookie调用来自 StartupAuth.cs 类启动 - &gt; ConfigureAuth - &gt; app.UseCookieAuthentication - &gt;提供者 - &gt; regenerateIdentity - &gt;的 user.GenerateUserIdentityAsync

app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login"),
                Provider = new CookieAuthenticationProvider
                {
                    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                        validateInterval: TimeSpan.FromMinutes(30),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)), 
                }
            });