我有一个在 WPF 中开发的桌面应用程序,它有几个视图显示为 Shell 的 MDI 子项。它不是以复合/模块化方法开发的。当应用程序打开时,所有视图都可以访问了。该应用程序有一个管理员用户和几个操作员。
要求是管理员用户将为操作员分配一些受限制的权限,这些权限将指定 -
- 哪些操作员可以访问/打开哪些视图,以及
- 哪些操作员可以在允许的视图中执行哪些操作
到目前为止,我的想法是——
- 在数据库中存储操作员权限信息
- 加载时,将当前登录用户的权限信息存储在某个应用程序级别
- 对于Shell,在应用程序级别检查权限信息并根据信息将可见性绑定设置到不同的View-access按钮
- 对于单个视图,在 ViewModel 级别检查权限信息并根据信息设置操作按钮的可见性绑定
有没有更好的方法来实现这种场景?