Можете ли вы повысить безопасность объекта недвижимости с помощью RIA Services? - PullRequest
1 голос
/ 07 декабря 2009

Службы RIA позволяют вам добавить атрибут к методу службы домена, например: requireRole («Admin»). Это автоматически проверит, имеет ли пользователь, вызывающий этот метод, правильную защиту для этого. Я хотел бы сделать что-то подобное для свойства на объекте. Например, только пользователи в роли «Менеджер» могут изменять свойство «Оценить», но любой пользователь может изменять свойство «Комментарии». Возможно ли это?

Ответы [ 2 ]

1 голос
/ 15 февраля 2011

Лучший способ поддержать безопасность свойств - переопределить метод DomainService.Query, таким образом вы избежите загрузки большого количества избыточных данных. Подробнее об этом здесь .

0 голосов
/ 08 декабря 2009

Вы можете сделать это, используя атрибут Custom Validation . Вы можете создать такой атрибут, как requireManagerRole, который будет проверять, находится ли пользователь в роли диспетчера, и не будет разрешать изменение, если пользователь этого не сделал.

Однако это может быть не очень хорошим опытом для пользователя. Возможно, вы захотите каким-либо образом связать свойство readonly в форме, чтобы выяснить, является ли свойство редактируемым. Возможно, вы сможете сделать это с помощью IValueConverter и в своем преобразователе значений проверьте роль пользователя, чтобы определить, доступен ли он только для чтения.

Обновление: Хорошо, я думаю, что Брэд видел этот вопрос и написал это сообщение в блоге, чтобы ответить на него . Это должно касаться того, что вы хотите сделать, но использует другой подход.

...