WCF PrincipalPermission属性exception登录

我有一个WCF服务,其中包含具有PrincipalPermission属性的方法。 当没有适当权限的用户尝试访问这些方法时,该属性会抛出SecurityException,但由于该属性中抛出exception,因此无法在调用周围放置try..chatch。

我已尝试使用Enterprise Library中的ExceptionShielding属性和日志记录处理程序,但它不会写任何日志。 我甚至尝试编写WCF行为扩展来尝试捕获exception,但扩展无法正确调用exception处理块。

有谁知道如何实现这一目标。

给你两个建议:

1)切换到使用new PrincipalPermission(...).Demand()而不是属性。

2)在评论中看一下(我认为#5)。 忽略提供给代码的链接 – 代码在Google Code上 。 Nick Berardi创建了一个ExceptionHandlerAttribute,将指定的exception转换为Web响应。 现在这与你的场景不太匹配,但他的类必须捕获PrincipalPermission属性抛出的Exception,所以也许你可以使用相同的主体。