Авторизация WCF RIA Services - PullRequest
       6

Авторизация WCF RIA Services

2 голосов
/ 07 сентября 2010

Предположим, у нас есть две группы "Администраторы" и "Пользователи". Администраторы могут использовать любые операции, доступные в службе, но пользователи могут использовать только некоторые из них.

Должен ли я добавить группу «Администраторы» к каждой отдельной операции или если я просто напишу ее поверх класса, то добьется цели?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 07 сентября 2010

Несколько атрибутов requireRole объединяются с AND, в то время как нескольким ролям, переданным одному атрибуту, присваивается OR.В вашем случае вам понадобится ИЛИ атрибуты («Пользователь» или «Администратор»), поэтому вам придется применять «Администратор» для каждого метода.

// «Администратор» && «Пользователь»", эквивалентно использованию атрибута класса для" Admin "

[Требуется Роль (" Администратор "), Требуется Роль (" Пользователь ")]

//" Администратор "||«Пользователь»

[Требуется Роль («Администратор», «Пользователь»)]

0 голосов
/ 10 июля 2011

У меня была такая же проблема.К сожалению, вы должны установить роли для каждого метода.В качестве альтернативы вы можете использовать saf-framework для реализации авторизации на основе доступа.

В противном случае я бы предложил перезаписать метод BeforeSubmit () службы домена и проверить доступ к вашим объектам, чтобы избежать чрезмерных атрибутов для каждого метода.

Например, вы можете изменить свою стратегию доступа, и вы не хотите проходить через каждый отдельный метод и делать это.

...