#c# #asp.net-web-api #elmah
#c# #asp.net-web-api #elmah
Вопрос:
Я реализовал elmah в приложении web api, используя Elmah.contrib.webapi.Мое мобильное приложение использует этот Api, и оно работает нормально.Моя проблема в том, что я получаю пустое поле пользователя.Как я могу зарегистрировать имя пользователя или идентификатор в Elmah Error_Table.
Ответ №1:
ELMAH заполняет поле пользователя значением Thread.CurrentPrincipal.Identity.Name
. Большинство фреймворков идентификации устанавливают текущего участника при входе пользователя в систему.
Какой тип аутентификации вы используете?
Ответ №2:
В качестве альтернативы перекомпиляции Elmah мы можем использовать глобальный метод, который заполняет поток.CurrentPrincipal.Идентификация.Имя перед вызовом elmah.
public static void LogError(Exception exception, string username)
{
Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(username), new string[] {});
Elmah.ErrorSignal.FromCurrentContext().Raise(exception);
}