Winforms app.config中的解密(仅)连接字符串部分

时间:2009-07-29 21:06:17

标签: winforms config encryption

好的,我知道之前已经问过这一次,但是没有得出确凿的解决方案......所以这是另一个非常愚蠢的问题!

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

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

  1. 除了app.config之外,connstring是否可以存储在别处? (可能喜欢在安装后可以修改的用户设置文件中)
  2. 如果以上是可能的,我是否可以不将预加密的 connstring存储到配置文件中(当然无法读取)并且在我的应用程序中,选择仅解密connstring什么时候打开连接?
  3. 如果这一切都不可能,我可能不得不恢复使用传统的ADO.NET(看到我已经有数百个存储过程用于所有CRUD操作) - 至少这样我可以控制如何以及在何处connstring存储。

    顺便说一句 - 对不起,如果这是一个少年/混乱的问题,如果你觉得我错了什么我解释请告诉我。

    非常感谢!

1 个答案:

答案 0 :(得分:0)

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

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