Я реализовал класс, который реализует интерфейс IErrorHandler для регистрации ошибок WCF.Одна из вещей, которую я хотел бы сделать, - это регистрировать, кто является личностью пользователя, который подключился к моей службе, когда произошло исключение.Все мои записи происходят в методе HandleError () интерфейса IErrorHandler, но, поскольку HandleError () может не иметь текущего контекста операции, я не могу получить SecurityContext.PrimaryIdentity.Я придумал следующий код для захвата вещей, которые могут быть недоступны в методе HandleError, но я не уверен, что это будет работать во всех случаях.
public class MyErrorHandler : IErrorHandler
{
private IIdentity identity;
public bool HandleError(Exception error)
{
// Do something with identity
return false;
}
public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
{
this.identity = Operation.Current.SecurityContext.PrimaryIdentity;
}
}
Код выше, кажется, работает, но есть ли ошибки?
Спасибо!