2010-02-03 62 views
3

我有一个WCF服务,它具有带有PrincipalPermission属性的方法。当没有适当权限的用户试图访问这些方法时,该属性会抛出一个SecurityException异常,但是由于在该属性中抛出了异常,因此无法将try..chatch放在调用中。WCF PrincipalPermission属性异常登录

我已经尝试从日志处理程序使用企业库中的ExceptionShielding属性,但它不写任何日志。我甚至尝试编写WCF行为扩展来尝试捕获异常,但扩展无法正确调用异常处理块。

有没有人有如何实现这个好主意。你

回答

2

两个建议:

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

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

+0

这正是我所需要的,非常感谢:-) – 2010-02-03 14:39:13

+0

建议2)仅适用于MVC – Seeker 2010-08-25 09:55:29