Silverlight 使用MEF处理带有导航框架的授权/用户访问

Silverlight 使用MEF处理带有导航框架的授权/用户访问,silverlight,silverlight-3.0,silverlight-4.0,mef,Silverlight,Silverlight 3.0,Silverlight 4.0,Mef,我想我现在开始了解如何使用MEF了。但是我仍然不确定使用MEF来控制用户访问的最佳方式是什么 例如:Im使用silverlight导航框架。如果某个特定用户有权(即角色、声明),则每个导航菜单项要么被禁用,要么根本不显示 现在我知道我可以设置IsEnabled属性来禁用它们,但我希望有一种更优雅/灵活的方法 总而言之: -每个菜单项都需要是一个MEF模块扩展(因此,没有访问权限的用户甚至无法下载) 如果您希望采用一种设计,即如果用户没有访问权,您实际上不会下载扩展,您可以将每个扩展放在单独的XA

我想我现在开始了解如何使用MEF了。但是我仍然不确定使用MEF来控制用户访问的最佳方式是什么

例如:Im使用silverlight导航框架。如果某个特定用户有权(即角色、声明),则每个导航菜单项要么被禁用,要么根本不显示

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

总而言之:
-每个菜单项都需要是一个MEF模块扩展(因此,没有访问权限的用户甚至无法下载)

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

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

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


使用
Lazy
您可以决定是否要声明模块或部件…

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


使用
Lazy
您可以决定是要显示模块还是部件…

谢谢。目前,我求助于使用Prism进行按需加载。但我已经遇到了另一堵砖墙——xap无法解析其类型。当我尝试加载UserControl时,它会抱怨(错误),因为xaml组件定义了一个关联的x:Class(即代码隐藏)。你知道MEF是否有同样的行为(限制)?我相信关于MEF的问题是肯定的。谢谢。目前,我求助于使用Prism进行按需加载。但我已经遇到了另一堵砖墙——xap无法解析其类型。当我尝试加载UserControl时,它会抱怨(错误),因为xaml组件定义了一个关联的x:Class(即代码隐藏)。你知道MEF是否有同样的行为(限制)?我相信关于MEF的问题是肯定的。