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

C# 将用户名添加到我的.net网络日志,c#,asp.net,logging,iis-7,C#,Asp.net,Logging,Iis 7,我希望asp.net/IIS7使用的网络日志在每个请求中都有客户的用户名和一些唯一的Id。实现这一点的最佳方法是什么,或者是否有比IIS7测井更好的工具 在日志中的每一行,我都希望看到IP、用户名、用户ID、日期时间以及他们正在查看的页面。我还想确保用户在页眉中看不到这些ID 如果我使用C#附加到日志。每一页的点击量对性能的影响有多大 如果有帮助的话,我也在使用表单身份验证。提前感谢。您可以编写一个自定义健康监测提供程序,并将其添加到健康监测部分。您可以将其转到数据库或平面文件 看看这个。然后,

我希望asp.net/IIS7使用的网络日志在每个请求中都有客户的用户名和一些唯一的Id。实现这一点的最佳方法是什么,或者是否有比IIS7测井更好的工具

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

如果我使用C#附加到日志。每一页的点击量对性能的影响有多大


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

您可以编写一个自定义健康监测提供程序,并将其添加到健康监测部分。您可以将其转到数据库或平面文件


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

我认为IIS日志不是特定于应用程序的日志条目(如用户ID)的正确位置。我会选择一个自定义的日志记录——某个地方的用户需要登录,因此您想要的值并不总是可用的。我所做的是创建一个点击路径日志,它记录了时间戳、URL、用户ID和每个页面加载(即完整页面加载)中的会话。我使用企业库完成了这项工作,因为我觉得这非常舒适和快速(我提到过可配置吗?)。使用会话id,您还可以将IIS日志连接到自定义日志

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

要研究生成的日志文件,请尝试使用logparser工具——这可以帮助您删除所有请求的图像和css文件

下面是一些示例文件输出


如何选择日志文件的字段-

我可以添加其他键吗?就像ID和用户名一样?我不这么认为-此日志记录超出了“应用程序代码”的范围-它是IIS核心功能的一部分。虽然如果确实将ID放入cookie数据中,那么它可能会存储在logs-cs(cookie)选项中。可用字段列表如下所示