2010-02-03 9 views
3

J'ai un service WCF qui a des méthodes avec l'attribut PrincipalPermission sur eux. Lorsqu'un utilisateur qui ne possède pas les autorisations appropriées tente d'accéder à ces méthodes, l'attribut déclenche une exception SecurityException, mais comme l'exception est lancée dans l'attribut, il n'est pas possible de mettre try..chatch autour de l'appel.WCF PrincipalPermission Attribut Exception loggin

J'ai essayé d'utiliser l'attribut ExceptionShielding de la bibliothèque Enterprise avec un gestionnaire d'enregistrement mais il n'écrit pas de journaux. J'ai même essayé d'écrire une extension WCF Behavior pour essayer d'attraper l'exception mais l'extension ne pouvait pas appeler le bloc de gestion des exceptions correctement.

Quelqu'un at-il une bonne idée de la façon d'y parvenir.

Répondre

2

Deux suggestions pour vous:

1) Passer à l'aide new PrincipalPermission(...).Demand() au lieu de l'attribut.

2) Jetez un oeil here dans les commentaires (# 5 je crois). Ignorer le lien fourni au code là-bas - le code est ici sur Google Code. Nick Berardi a créé un objet ExceptionHandlerAttribute pour transformer des exceptions spécifiées en réponses Web. Maintenant, cela ne correspond pas tout à fait à votre scénario, mais sa classe doit attraper l'exception lancée par l'attribut PrincipalPermission, alors peut-être que vous pouvez utiliser le même principe.

+0

C'est exactement ce que je avais besoin, je vous remercie beaucoup :-) –

+0

Suggestion 2) est utilisable uniquement de MVC – Seeker