用户在asp.net中跟踪

时间:2009-05-12 08:29:06

标签: c# asp.net

我正在开发一个asp.net应用程序,我正在创建一个跟踪用户活动的页面,就像我的应用程序中访问过的页面一样。

其中我还需要找出自登录以来收到的总KB(数据)以及自每个用户登录后发送的总KB(数据)。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

首先,我要考虑您是否需要自己实现此功能,Google Analytics可以很好地跟踪使用情况并且是免费的。你可以在http://www.google.com/analytics找到它,你需要做的就是在你的所有页面上添加一些javascript。您的母版页是一个很好的地方。

如果你自己坚持这样做,实现这个的好方法是使用HttpModule。在每个页面请求期间调用HttpModule。

在HttpModule的Init方法中,您可以捕获BeginRequest和EndRequest事件。您可以查看BeginRequest中的Request对象和EndRequest中的Response对象。您可以在ContentLength属性中找到发送的数据量。您需要在数据库中存储您所需的任何信息。在显示用户活动的页面上,您只需从数据库中检索这些值。

我认真考虑使用Google Analytics。

答案 1 :(得分:0)

该问题实际上并未阐明 包含在“发送/接收的总数据”中。虽然HttpModule可以帮助您使用aspx输出,但它不包括图像,css,js等文件的大小。虽然我不确定他为什么要这样做,但它不属于Google Analytics功能。

我想HTTPModule可以做到这一点(?)如果您映射了要由.NET框架处理的所有资源类型,那么您可以“测量”所提供的所有不同文件的大小。通过跟踪登录cookie(或您使用的任何内容),可以很容易地将所有这些数据写入数据库并以接近实时的方式对其进行报告(尽管可能很慢)。

发送/接收字节存储的明显位置是IIS日志文件。使用LogParser将使您能够报告该数据 - 可能是您编写会话cookie(或跟踪IP地址或其他内容),您可以将该数据链接到每个单独的用户登录。根据IIS日志,“实时”几乎不可能做到。

我见过的另一个可能对您有所帮助的开发人员项目是Matt Berseth's 'openurchin'LiveTraffic page - 他的示例使用Google Analytics之类的JavaScript,但会将数据发回给您。您需要编写代码来自行解析/保存数据,包括计算发送/接收信息的字节数。

也许如果您提供了有关您要实现的目标的更多信息,我们可以提供更好的解决方案? Google Analytics 很棒它的功能;并提供有关页面访问,条目,退出,独特用户等的详细报告 - 非常直观的报告和易于使用。但是,实际上并没有达到“用户级别”。所以这一切都取决于你需要做什么......