Журнал событий ASP.NET: заполнить поле «Пользователь»? - PullRequest
0 голосов
/ 22 ноября 2010

Я пишу в журнал событий приложений из веб-приложения ASP.NET.Как заполнить поле «Пользователь» записи журнала?

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

Пользователь, записанный в записи журнала событий, - это пользователь, который «владеет» потоком (с точки зрения безопасности) во время вызова журнала регистрации событий.В приложении ASP.Net (по умолчанию) это будет учетная запись, под которой работает ASP.Net.

Вы можете изменить, под каким пользователем выполняется поток, используя олицетворение Windows.Для примера вопроса о SO см .:

Олицетворение Windows от C #

Это нетривиальная область, а не случай простой передачи пользовательских данныхжурнал событий.

0 голосов
/ 22 ноября 2010

Я взял имя пользователя из профиля 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);
...