WPF 应用程序安全和数据访问 - mef 模块化应用程序 MVVM

WPF application security and data access - mef modular app MVVM

我正在使用 NET Framework 4.0 Client Profile、具有 MEF amd MVVM 模型的 PRISM 和 MySQL 数据库在 WPF 中编写应用程序。

我有一个 shell 应用程序,它保存重要的安全数据,如数据库登录名、密码等。我不想公开这些安全数据,但其他模块必须访问数据库。

有没有办法在 shell 和模块之间共享这种数据。一种安全的方式?我应该如何组织数据访问?

对我来说最好的选择是:

SHELL - 所有安全数据及其加密且未以任何方式暴露。

MODULES - 尽可能独立,但也可以使用与 SHELL

的某种通信来访问数据库

我想出了几个解决方案:

  1. 共享上下文 - 在需要时将连接字符串传递给模块。 (但我认为这是安全数据泄露的一种冒险方式)

  2. 向 PRISM 注册服务,该服务将公开所需的数据库操作 (但是模块不会独立,所有模块的所有数据访问都在 shell)

  3. 向 PRISM 注册通用服务,它将接受自定义数据库操作 - 包装的 MySqlCommand - 并确保它只允许 select、更新等而不是删除等。 (这是很多工作,而且我不认为这是一种好的和安全的方式)

还有其他选择吗?

原来我都听错了。解决办法很简单:根本不做。

我已经在 nusoap PHP 中创建了网络服务,我所有的安全数据都在那里。 WPF 应用程序仅存储临时用户票证,因此这是最安全的方法。我的错误是我直接连接到数据库。这是非常糟糕的做法。有趣的是,没有速度影响,实际上一切都运行得非常顺利 :) 同样有趣的是,用户安全角色也在 web 服务中检查,因此更加安全 :)