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