0

好的,我知道这已经被问过一千次了,但是还没有得出结论性的解决方案……所以这是另一个非常愚蠢的问题!

我有一个 Winforms 3.5 应用程序并使用 LINQ to SQL,因此默认情况下连接字符串始终存储在“app.config”中(VS2008 不会接受任何其他存储方式 - 我什至尝试在 IDE 生成的代码)。话虽如此,任何具有一点计算机知识的人只需浏览到应用程序的安装目录,查找[appname].exe.config文件,然后打开它以显示假定的安全用户名/密码访问数据库。即使您选择加密/解密此部分,它也仅在应用程序运行时完成 - 所以我假设当应用程序关闭时,connString 部分恢复为纯文本......可以再次读取。(....你怎么赢了?!?!)

请记住,我使用 LINQ 并生成 LinqDataContext,我想知道的是:

  1. connstring 不能存储在 app.config 之外的其他地方吗?(可能就像在安装后可以修改的用户设置文件中一样)
  2. 如果上述情况可行,我是否可以不将预加密的 connstring 存储到配置文件中(肯定无法读取)并且在我的应用程序中,选择只在打开连接时解密 connstring?

如果这一切都不可能,我可能不得不恢复使用传统的 ADO.NET(看到我已经为所有 CRUD 操作存储了数百个存储过程)——至少这样我可以控制 connstring 的存储方式和位置.

顺便说一句 - 抱歉,如果这是一个幼稚/令人困惑的问题,如果你觉得我解释的任何事情都有问题,请告诉我。

非常感谢!

4

1 回答 1

0

您可以在 app.config 中存储一个预加密的 conn-string,但我想这将是无用的,因为您的应用程序迟早会解密 conn-string(任何有兴趣的人都可以使用纯文本!)

所以你也应该获得一个 SSL 证书......(不是自签名证书)

于 2009-09-14T14:02:21.157 回答