Использование MEF для обработки авторизации / пользовательского доступа с навигационной платформой - PullRequest
1 голос
/ 08 сентября 2010

Я думаю, я начинаю понимать, как использовать MEF сейчас.Но я все еще не уверен, каков наилучший способ использования MEF для управления доступом пользователей.

Например: я использую навигационную платформу silverlight.И каждый пункт меню навигации должен быть либо отключен, либо вообще не отображаться, если у конкретного пользователя есть права (т.е. роли, утверждения) для него.

Теперь я знаю, что могу установить атрибуты IsEnabled, чтобы отключить их,но я надеюсь на более элегантный / гибкий подход.

Подводя итог: - Каждый пункт меню должен быть расширением модуля MEF (так что его даже нельзя будет загрузить пользователям, не имеющим к нему доступа).

Ответы [ 2 ]

1 голос
/ 09 сентября 2010

Если вы хотите использовать дизайн, в котором вы фактически не загружаете расширение, если у пользователя нет к нему доступа, вы можете поместить каждое расширение в отдельный XAP и загружать только те XAP, которые есть у пользователя. доступ к (с помощью DeploymentCatalog). Должен быть список XAP и права, необходимые для каждого из них, либо встроенные в ваш основной XAP, либо в качестве какой-либо службы на сервере.

0 голосов
/ 09 сентября 2010

Вы можете предоставить метаданные для модуля или MEF-части.Метаданные могут содержать роль или лицензионный ключ, например ...

И с помощью Lazy<T,TMeta> вы можете решить, хотите ли вы внедрить модуль или часть ...

...