2009-07-29 81 views
0

好吧,我知道这已经被问过一千次,但没有确凿的解决方案已经得到的...所以这里还有一个非常愚蠢的问题!解密(只)连接字符串中的WinForms部分的app.config

我有一个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操作) - 至少这样我可以有超过如何控制以及存储连接线的位置。

顺便说一句 - 对不起,如果这是一个少年/混乱的问题要问,如果你觉得我错与任何即时通讯解释,请让我知道。

非常感谢!

+0

**更新:**我发现下面的链接(http://goneale.com/2009/ 03/26/untie-linq-to-sql-connection-string-from-application-settings /),这是不言自明的,并照顾我的第一个问题 - 哇!请问有人可以帮我解答我的第二个问题吗? – Shalan 2009-07-29 21:26:53

回答

0

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

所以,你应该获得SSL cerificate太...(不是自签名的一个)

+0

是真的,但它会对Winforms App.config文件中的预加密字符串执行相同的操作吗? Iv完美地解决了正在进行的解密工作,并且坚持在内存中。 – Shalan 2009-11-19 07:58:20

相关问题