0
  • 我想制作一个存在于一个目录中的WPF应用程序,包括它需要的所有文件:.exe.mdf数据库、.xml配置文件等。
  • 无论应用程序位于哪个目录中,它都应该可以工作,以便它支持这种情况
    • 人 1执行应用程序c:\temp\wpftool.exe
    • 应用程序读取和写入c:\temp\wpftool.mdf 数据库
    • 人 1压缩该目录并通过电子邮件将其发送给人 2
    • 人 2将其解压缩c:\Users\jim\documents\checkout\wpftool.exe,应用程序读取和写入该目录中的同一数据库 ( c:\Users\jim\documents\checkout\wpftool.mdf)
    • 人 2再次压缩目录并将其发送回人 1 以继续对其进行更改

创建支持上述方案的 WPF 应用程序的最佳方法是什么?,考虑:

  • 不应该有 编码的数据库连接字符串
  • 什么是最好的部署 方法,单击一次?或者只是将 .exe 文件从 /release 目录中复制出来?
  • 合理的安全性,使用户必须根据数据库中的密码登录,而如果第三人恰巧截获了电子邮件,他将无法轻易查看数据库中的数据
4

2 回答 2

1

数据库方面的一些要点:

假设“新用户”已经安装了 SQL,他们需要附加(新复制的)数据库。除了有足够的访问权限来附加数据库之外,您的应用程序还需要配置调用以包含包含数据库文件的驱动器\文件夹。如果您的 .exe 可以即时识别它的“新主文件夹”,那么您应该能够解决这个问题。

定义“合理的安全性”。我得到的任何数据库文件,我都可以打开、查看并最终弄清楚(取决于内容的模糊程度)。您能否混淆您的数据,例如使用表“A”而不是“客户”?你真的愿意吗?最好的安全性涉及数据加密,并且管理它 - 特别是加密密钥 - 可能是一个非常高级的主题,这取决于您希望数据有多“安全”。

于 2009-10-21T17:05:57.590 回答
1

对于数据库,我会考虑使用 SQL Express 中的“用户实例”功能。结合 |DataDirectory| 替换字符串支持它使您的应用程序很容易被连接起来。

老实说,我自己还没有部署一个利用这种方法的 ClickOnce 应用程序,但我只是想我会引起你的注意,因为如果我正在构建像你描述的那样的东西,我会审视自己。

于 2009-10-21T17:52:24.830 回答