使用MEF使用/ Navigation Framework处理授权/用户访问

时间:2010-09-08 17:31:01

标签: silverlight silverlight-3.0 silverlight-4.0 mef

我想我现在开始明白如何使用MEF了。但是我仍然不确定利用MEF来处理用户访问控制的最佳方式。

例如:我正在使用silverlight导航框架。如果特定用户拥有权限(即角色,声明),则每个导航菜单项都将被禁用或根本不显示。

现在我知道我可以设置IsEnabled属性来禁用它们,但我希望有一种更优雅/更灵活的方法。

总结一下: - 每个菜单项都需要是MEF模块扩展(因此即使是无法访问它的用户也无法下载)。

2 个答案:

答案 0 :(得分:1)

如果您想使用实际上没有下载扩展程序的设计(如果用户无法访问它),您可以将每个扩展程序放在单独的XAP中,并且只下载用户具有的XAP访问(使用DeploymentCatalog)。需要有一个XAP列表以及每个XAP所需的权限,可以嵌入主XAP中,也可以作为服务器上的某种服务。

答案 1 :(得分:0)

您可以向模块或MEF-Part提供元数据。 元数据可以包含角色或许可证密钥,例如......

使用Lazy<T,TMeta>,您可以决定是否要将模块或部分包含在内......