我必须更改现有的Web App以启用User Activity日志记录。在大多数情况下,每次有人访问页面时记录都很好。我们尝试从IIS日志中提取信息,但它记录了代理详细信息而不是登录的用户。
然后我考虑在每个表单的Page_Load上运行代码。唯一的问题是这个应用程序包含大约120个表单。我尝试通过执行搜索/替换来将代码放在基类中来更改继承,但后来我收到了数百条关于成员隐藏的警告。
还有另一种方法可以完成我想做的事吗?
答案 0 :(得分:2)
将httpModule添加到您的应用程序中。每个请求都会触发模块,因此请在此处添加逻辑。
答案 1 :(得分:1)
您可以添加其中一个事件,以解决此问题。
然而,事件的顺序并不保证 - 例如BasePage.Load
可能会在InheritedPage.Load
之前或之后开火。
要更细化,请使用PreInit
,Init
等..
查找/替换System.Web.UI.Page
至BasePage
将此课程添加到您的网络项目
public abstract class BasePage : System.Web.UI.Page
{
// Assuming nlog
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
protected BasePage()
{
this.Load += new EventHandler(LogPageLoad);
}
protected void LogPageLoad(object sender, EventArgs e)
{
Logger.Trace("Loading Page: {0}", this.Title);
}
}