log4net WCF Получить имя пользователя Windows - PullRequest
0 голосов
/ 05 марта 2019

У меня есть log4net и я работаю с db logger для службы WCF. Если я включу следующее в каждом методе, правильное имя пользователя Windows (вызывающего) будет зарегистрировано:

ThreadContext.Properties("user") = Thread.CurrentPrincipal.Identity.Name

Если я использую OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name, я также получу правильное имя пользователя для записи в журнале.

Я пытаюсь удалить требование, чтобы установить это для каждого метода, установив значение на уровне GlobalContext в конструкторе класса обслуживания следующим образом:

Public Sub New() GlobalContext.Properties("user") = OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name log4net.Config.XmlConfigurator.Configure() End Sub

Однако, похоже, это не работает согласованно, иногда в записях журнала указывается имя пользователя Windows вызывающего абонента, а иногда это учетная запись компьютера веб-сервера (DOMAIN \ server $). Эта проблема - проблема log4net или WCF? Как я могу заставить имя пользователя Windows вызывающего абонента регистрироваться, когда создается служба WCF?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...