【问题标题】:User permissions based MEF components基于用户权限的 MEF 组件
【发布时间】:2011-09-24 21:53:56
【问题描述】:

几个月前,我迈出了迈向 MEF 的第一步,到目前为止一切似乎都还不错。我想做的是现在在我的真实应用程序中使用 MEF 并加载,或者我们可以说基于经过身份验证的用户权限显示 UI 组件。我正在为诊所开发患者管理系统,我想实现根据用户类型显示 MEF 组成的 UI 组件的场景。例如,如果经过身份验证的用户是医生,我想显示特定组件并隐藏其他组件。

我想要达到的目标是

ISystemComponent 具有一些属性和方法,因此管理员可以控制每个用户的访问级别,并根据数据库记录,MEF 组成的控件将显示给最终用户。我还考虑在导出组件时使用 MetaData 接口,那么使用它如何获得所需的结果?

任何正确的方向将不胜感激

【问题讨论】:

  • 目标表示层? WPF 还是 WinForms?
  • 不是winforms,而是WPF,或者它也可能是silverlight
  • 您有几个框架可以完全满足您的需求,例如PRISM(可能使用 MEF 或其他 IOC 容器)
  • 您能否建议除 PRISM 之外的任何其他 IoC,我们不想实施 PRISM。

标签: c# authentication user-controls mef


【解决方案1】:

【讨论】:

  • 谢谢你这些链接对我真的很有帮助本案例向用户展示插件
【解决方案2】:

here 文章详细介绍了使用 AOP 将安全问题注入 MEF。这可能是这样做的一种方式 - 我还没有在 MEF 中找到任何可以在其他地方实现这种功能的东西。

【讨论】:

    【解决方案3】:

    我认为 PRISM 可以完全按照您的描述进行。看看this Code Project article。您可以创建多个模块目录(根据用户权限),并从 XML 动态加载目录,如 Here 所述:

    var catalog = ModuleCatalog.CreateFromXaml(new Uri("catalog.xaml", 
                                                     UriKind.Relative));
    

    【讨论】:

    • 我不使用 PRISM,也不打算在我们的项目中使用它,我们从一开始就构建了很多东西,因为这真的是企业系统
    【解决方案4】:

    我在 WPF / MVVM 中使用Cinch 和将控件映射到角色和查看权限的后端 SQL 表实现了这一点。这允许您通过视图模型控制权限并随时更改可见性。

    Cinch 协助处理 MVVM 的一些繁琐工作,同时允许您通过 MeffedMVVM 或 Prism 来利用 MEF。

    【讨论】:

      猜你喜欢
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 2018-07-25
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      相关资源
      最近更新 更多