我实现了一个类,该类实现了IErrorHandler接口来记录WCF错误。我想做的一件事是记录发生异常时连接到我的服务的用户的身份。我的所有日志记录都发生在IErrorHandler接口的HandleError()方法中,但由于HandleError()可能没有当前的操作上下文,我无法获取SecurityContext。首要身份。我已经想出了以下代码来捕获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;
}
}
上面的代码似乎有效,但有什么问题吗?
谢谢