如何在WPF中存储当前登录的用户

时间:2013-05-01 17:18:37

标签: c# wpf mvvm

我有一个带登录屏幕的应用程序,我猜是相当典型的场景。用户通过身份验证后,我需要以某种方式存储他,因为我必须根据他的权限等行事。当然还会有更多的属性存储..

什么是best实现此目的的方式?我目前正在评估两个选项:

1。)使用单例(或静态属性)并在我的viewmodels

中引用它

2。)使用App.Current.Properties并将其存储在那里。然后可以使用一些静态辅助方法在整个应用程序中更轻松,更一致地检索用户

或者可能还有其他选择吗?谢谢你的建议。

1 个答案:

答案 0 :(得分:2)

将MEF和[导入]经过身份验证的用户界面用于视图模型。这样,您可以为对象和框架提供全局资源,而不是代码负责管理资源。这引入了比您建议的解决方案更少的耦合,这些优势将有助于单元测试。

Prism framework for Silverlight基于MEF,应该适用于WPF。

MEF是依赖注入。通过将所需接口映射到具体类的实例,您可以为MEF负责解决依赖关系。您可以使用设置和检索标识的方法创建IAuthenticatedUser接口。您创建一个实现接口的模型类并将其导出到MEF。您的登录ViewModel和任何其他需要身份的ViewModel导入该接口。 MEF在创建实现类时将视图模型连接到实现类的实例。您的ViewModel根据需要使用该接口。