当用户访问MVC网站时记录



在MVC 5项目中,有单独的用户帐户和facebook登录选项,当用户访问网站并且已经登录时,你将如何登录?我已经设置了一个UserLog类,它是在用户在网站上注册时创建的,通过注册操作或facebok:

public class UserLog
    {
        public string UserId { get; set; }
        public virtual User User { get; set; }
        public virtual  ICollection<LogonInfo> Logons { get; set; }
    }

每次用户访问该网站时,我都想在LogonInfo:中记录日期和IP地址以及其他信息

 public class LogonInfo
    {
        public int Id { get; set; }
        public string UserLogId { get; set; }
        public virtual UserLog UserLog { get; set; }
        public DateTime LogonTime { get; set; }
        public string IpAddress { get; set; }
        public string IpDns { get; set; }
        public string Browser { get; set; }
        public string OperatingSystem { get; set; }
    }

如果用户在访问网站时已经登录,我不确定如何获得这些信息。我的第一个想法是在AccountController上添加Login和ExternalLogin方法的信息,但大多数用户只会登录一次,然后在离开和访问网站时保持登录状态。

我建议使用过滤器,您可以根据需要详细跟踪用户活动,下面的博客上有一个完美的介绍:

https://logcorner.wordpress.com/2013/08/25/asp-net-mvc-tracking-user-activity/

我强烈建议您使用Bilal Fazlani创建的TrackerEnabledDbContext.Identity。我很容易将此功能应用到我的项目中,并且我可以通过只记录更改的列而不是全部记录所有行,将所有更改的数据记录在不同的表上。

相关内容

  • 没有找到相关文章

最新更新