将用户名添加到我的网络日志中.net

时间:2011-07-20 18:32:54

标签: c# asp.net logging iis-7

我希望asp.net/IIS7使用的博客在每个请求中都有客户的用户名和一些唯一的ID。什么是实现这一目标的最佳方法,还是有比IIS7更好的工具?

在日志的每一行,我想看到IP,用户名,用户ID,日期时间以及他们正在查看的页面。我还想确保用户无法在页眉中看到这些ID。

如果我使用C#追加日志。每次点击时我会采取多大的性能影响?

如果有任何帮助,我也在使用表单身份验证。提前谢谢。

3 个答案:

答案 0 :(得分:1)

我认为IIS日志不适合像userids这样的应用程序特定日志条目。我会选择自定义日志记录 - 某个地方的用户需要登录,因此您想要的值不可用。我所做的是创建一个点击路径日志,记录时间戳,URL,用户ID和每个页面加载中的会话,这是一个整页加载。我已经使用Enterprise Library完成了这项工作,因为我觉得这非常舒适和快速(我提到过可配置?)。使用会话ID,您还可以将IIS日志连接到自定义日志

答案 1 :(得分:1)

如果您使用的是标准IIS7日志记录,并且您的应用使用基于表单的身份验证,那么用户名可以包含在W3C日志文件中。在IIS管理UI中选择“Logging”,确保格式为W3C,然后在“select fields”中确保选中User Name(“cs-username”)字段。

要研究生成的日志文件,请尝试使用logparser工具 - http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=24659 - 这可以帮助您删除,例如获取请求的所有图像和css文件

一些示例文件输出是http://technet.microsoft.com/en-us/library/cc738725(WS.10).aspx

如何选择日志文件的字段 - http://technet.microsoft.com/en-us/library/cc754702(WS.10).aspx

答案 2 :(得分:0)

您可以编写自定义运行状况监视提供程序并将其添加到运行状况监视部分。您可以将其转到数据库或平面文件。

看看这个video。然后,您可以创建一个基页并触发此自定义事件,在每次加载页面时提供您在写入文件时所需的所有信息。