是否有一种简单的方法可以记录任何用户点击的每个页面。我认为这将位于 global.asax.cs 文件中,以便我可以将被点击页面的 URL 写入 db 表。
			
			1951 次
		
2 回答
            4        
        
		
我找到了一种方法来完成这个问题,这似乎符合我的目的。
我使用 PostAuthenticateRequestHandler 方法,因为它会在每个页面点击时调用。我忽略任何空路径,只忽略“/”,因为这些不是实际命中的页面。
//in global.asax.cs file
private void PostAuthenticateRequestHandler(object sender, EventArgs e)
{
   ///...///
   string extension = this.Context.Request.CurrentExecutionFilePathExtension;
   string path = this.Context.Request.CurrentExecutionFilePath;
   if (extension == string.Empty && path != "/")
   {
   PageVisitedLogModel pageVisitedLogModel = new PageVisitedLogModel
   {
       DateVisited = DateTime.Now,
       IPAddress = this.Context.Request.UserHostAddress,
       PageURL = this.Context.Request.RawUrl,
       Username = this.Context.User.Identity.Name
   };
   //then writes to log
   DataHelper.UpdatePageVisitedLog(pageVisitedLogModel);
}
}
    于 2012-07-04T13:26:44.807   回答
    
    
            0        
        
		
一种方法是使用全局操作过滤器,如本例所示。这允许您为解决方案中的任何操作运行一些代码。
于 2012-06-28T13:55:48.263   回答