【发布时间】:2009-07-29 21:06:16
【问题描述】:
好的,我知道这个问题已经被问过一千次了,但还没有得出结论性的解决方案……所以这是另一个非常愚蠢的问题!
我有一个 Winforms 3.5 应用程序并使用 LINQ to SQL,因此默认情况下连接字符串 ALWAYS 存储在“app.config”中(并且 VS2008 不会接受任何其他存储方式 -我什至尝试在 IDE 生成的代码中覆盖它)。话虽如此,任何有一点计算机知识的人只需浏览到应用程序的安装目录,查找 [appname].exe.config 文件,然后打开它即可显示用于访问数据库的假定 secure 用户名/密码。即使您选择加密/解密此部分,它也仅在应用程序运行时完成 - 所以我假设当应用程序关闭时,connString 部分恢复为纯文本......可以再次读取。 (....你是怎么赢的?!?!)
请记住,我使用 LINQ 并生成 LinqDataContext,我想知道的是:
- connstring 不能存储在 app.config 之外的其他地方吗? (可能就像在安装后可以修改的用户设置文件中一样)
- 如果上述情况可行,我是否可以不将 预加密 连接字符串存储到配置文件中(肯定无法读取)并且在我的应用程序中,选择仅解密连接字符串何时打开连接?
如果这一切都不可能,我可能不得不恢复使用传统的 ADO.NET(看到我已经有数百个用于所有 CRUD 操作的存储过程)——至少这样我可以控制如何以及在哪里connstring 被存储。
顺便说一句 - 抱歉,如果这是一个幼稚/令人困惑的问题,如果您觉得我解释的任何内容有误,请告诉我。
非常感谢!
【问题讨论】:
-
更新: 我发现以下链接 (goneale.com/2009/03/26/…) 不言自明,并解决了我的第一个问题 - 哇!请问有人现在可以帮助我解决我的第二个问题吗?
标签: winforms config encryption