用户访问网站MVC时记录

时间:2015-03-26 08:31:03

标签: asp.net-mvc facebook asp.net-mvc-5 asp.net-identity owin

在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方法的信息,但大多数用户只会登录一次,然后只要他们离开并访问网站就会保持登录状态。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我强烈建议您使用Bilal Fazlani创建的TrackerEnabledDbContext.Identity。我可以轻松地将此功能应用于我的项目,并且我可以通过仅记录更改的列而不是完全记录所有行来将所有已更改的数据记录在不同的表上。 希望这会有所帮助...