我正在从ASP.NET webapp写入应用程序事件日志。如何填充日志条目的“用户”字段?
答案 0 :(得分:1)
事件日志条目中记录的用户是在进行事件记录调用时“拥有”该线程的用户(从安全角度来看)。在ASP.Net应用程序中(默认情况下),这将是ASP.Net运行的帐户。
您可以使用Windows模拟更改线程正在运行的用户。有关SO的示例问题,请参阅:
这是一个非常重要的区域,而不是简单地向事件记录调用提供用户详细信息。
答案 1 :(得分:0)
我从Asp.net个人资料中获取了用户名。然后我把它传递给了方法。在这里,我在Global.asax中使用过它,但同样的主体应该在其他地方使用。
String username = User.Identity.Name;
String pageRequested = ((HttpApplication)sender).Request.Path;
error = Server.GetLastError().GetBaseException();
String message = "ERROR MESSAGE: " + error.Message +
"\nINNER EXCEPTION: " + error.InnerException +
"\nSOURCE: " + error.Source +
"\nFORM: " + Request.Form.ToString() +
"\nQUERYSTRING: " + Request.QueryString.ToString() +
"\nTARGETSITE: " + error.TargetSite +
"\nSTACKTRACE: " + error.StackTrace +
"\nNCLWEB USERNAME: " + username +
"\nDATESTAMP: " + DateTime.Now;
System.Diagnostics.EventLog.WriteEntry("NCLWeb", message, System.Diagnostics.EventLogEntryType.Error);