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