Логическое сообщение об исключении атрибута PrincipalPermission WCF - PullRequest
3 голосов
/ 03 февраля 2010

У меня есть служба WCF, в которой есть методы с атрибутом PrincipalPermission. Когда пользователь, который не имеет соответствующих разрешений, пытается получить доступ к этим методам, атрибут выдает исключение SecurityException, но, поскольку в атрибуте выдается исключение, невозможно поместить try..chatch вокруг вызова.

Я пытался использовать атрибут ExceptionShielding из Enterprise Library с обработчиком журналов, но он не записывает никаких журналов. Я даже пытался написать расширение WCF Behavior, чтобы попытаться перехватить исключение, но расширение не смогло правильно вызвать блок обработки исключений.

Кто-нибудь знает, как этого добиться?

1 Ответ

2 голосов
/ 03 февраля 2010

Два предложения для вас:

1) Переключитесь на использование new PrincipalPermission(...).Demand() вместо атрибута.

2) Взгляните здесь в комментариях (я думаю, # 5). Игнорируйте приведенную здесь ссылку на код - код здесь Google Code . Ник Берарди создал ExceptionHandlerAttribute, чтобы превратить указанные исключения в веб-ответы. Теперь это не совсем соответствует вашему сценарию, но его класс должен ловить исключение, генерируемое атрибутом PrincipalPermission, так что, возможно, вы можете использовать тот же принципал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...