ASP.NET事件日志:填充“用户”字段?

时间:2010-11-22 14:52:04

标签: c# asp.net field event-log

我正在从ASP.NET webapp写入应用程序事件日志。如何填充日志条目的“用户”字段?

2 个答案:

答案 0 :(得分:1)

事件日志条目中记录的用户是在进行事件记录调用时“拥有”该线程的用户(从安全角度来看)。在ASP.Net应用程序中(默认情况下),这将是ASP.Net运行的帐户。

您可以使用Windows模拟更改线程正在运行的用户。有关SO的示例问题,请参阅:

Windows Impersonation from C#

这是一个非常重要的区域,而不是简单地向事件记录调用提供用户详细信息。

答案 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);