如何在IErrorHandler中获取原始异常

时间:2011-09-16 21:48:38

标签: wcf security authentication role ierrorhandler

我在WCF应用程序中使用基于角色的安全性。我使用System.Security.Permissions.PrincipalPermissionAttribute修改了我的服务操作实现。

如果授权失败,则会引发System.Security.SecurityException(其中包含已声明的角色)。

我想记录System.Security.SecurityException的详细信息。但是,如果我实现IErrorHandler,我不会将原始的System.Security.SecurityException传递给HandleError或ProvideFault方法,而是获得System.ServiceModel.FaultException。后一个例外不包括我想记录的任何细节。

有没有办法从IErrorHandler中获取原始的System.Security.SecurityException,或者在WCF中的某处有另一个钩子来获取它?

1 个答案:

答案 0 :(得分:1)

根据微软的说法一直在打猎:

http://connect.microsoft.com/VisualStudio/feedback/details/371181/wcf-ierrorhandler-logging-securityexceptions

WCF会将其过滤掉,因此您无法获得原始异常。