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
的某种通信来访问数据库
我想出了几个解决方案:
共享上下文 - 在需要时将连接字符串传递给模块。
(但我认为这是安全数据泄露的一种冒险方式)
向 PRISM 注册服务,该服务将公开所需的数据库操作
(但是模块不会独立,所有模块的所有数据访问都在 shell)
向 PRISM 注册通用服务,它将接受自定义数据库操作 - 包装的 MySqlCommand - 并确保它只允许 select、更新等而不是删除等。
(这是很多工作,而且我不认为这是一种好的和安全的方式)
还有其他选择吗?
原来我都听错了。解决办法很简单:根本不做。
我已经在 nusoap PHP 中创建了网络服务,我所有的安全数据都在那里。 WPF 应用程序仅存储临时用户票证,因此这是最安全的方法。我的错误是我直接连接到数据库。这是非常糟糕的做法。有趣的是,没有速度影响,实际上一切都运行得非常顺利 :) 同样有趣的是,用户安全角色也在 web 服务中检查,因此更加安全 :)
我正在使用 NET Framework 4.0 Client Profile、具有 MEF amd MVVM 模型的 PRISM 和 MySQL 数据库在 WPF 中编写应用程序。
我有一个 shell 应用程序,它保存重要的安全数据,如数据库登录名、密码等。我不想公开这些安全数据,但其他模块必须访问数据库。
有没有办法在 shell 和模块之间共享这种数据。一种安全的方式?我应该如何组织数据访问?
对我来说最好的选择是:
SHELL - 所有安全数据及其加密且未以任何方式暴露。
MODULES - 尽可能独立,但也可以使用与 SHELL
的某种通信来访问数据库我想出了几个解决方案:
共享上下文 - 在需要时将连接字符串传递给模块。 (但我认为这是安全数据泄露的一种冒险方式)
向 PRISM 注册服务,该服务将公开所需的数据库操作 (但是模块不会独立,所有模块的所有数据访问都在 shell)
向 PRISM 注册通用服务,它将接受自定义数据库操作 - 包装的 MySqlCommand - 并确保它只允许 select、更新等而不是删除等。 (这是很多工作,而且我不认为这是一种好的和安全的方式)
还有其他选择吗?
原来我都听错了。解决办法很简单:根本不做。
我已经在 nusoap PHP 中创建了网络服务,我所有的安全数据都在那里。 WPF 应用程序仅存储临时用户票证,因此这是最安全的方法。我的错误是我直接连接到数据库。这是非常糟糕的做法。有趣的是,没有速度影响,实际上一切都运行得非常顺利 :) 同样有趣的是,用户安全角色也在 web 服务中检查,因此更加安全 :)