WCF PrincipalPermission属性异常日志记录

时间:2010-02-03 13:19:07

标签: c# wcf

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

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

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

1 个答案:

答案 0 :(得分:2)

给你两个建议:

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

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