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

在Winforms app.config中解密(仅)连接字符串部分,winforms,config,encryption,Winforms,Config,Encryption,好吧,我知道这已经被问了一千次了,但还没有得出结论性的解决方案…所以这里是另一个非常愚蠢的问题 我有一个Winforms 3.5应用程序,并使用LINQ to SQL,因此默认情况下连接字符串始终存储在app.config中,VS2008将不接受任何其他存储方式—我甚至尝试在IDE生成的代码中覆盖它。也就是说,任何有点计算机知识的人只需浏览到应用程序的安装目录,查找[appname].exe.config文件,然后打开它以显示访问数据库的假定安全用户名/密码。即使您选择加密/解密此部分,也只能在

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

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

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

除了app.config之外,connstring不能存储在其他位置吗?可能与安装后可以修改的用户设置文件类似 如果上述情况是可能的,我是否可以不将预加密的connstring存储到配置文件中,而在我的应用程序中,只要打开连接,就只选择解密connstring? 如果这一切都不可能,我可能不得不恢复使用传统的ADO.NET,因为我已经为所有CRUD操作存储了数百个进程——至少这样我可以控制connstring的存储方式和位置

顺便说一句-如果这是一个幼稚的/令人困惑的问题,很抱歉,如果你觉得我在解释什么时有错,请让我知道


非常感谢

您可以在app.config中存储一个预加密的conn字符串,但我想这将是无用的,因为您的应用程序迟早会解密conn字符串,并且任何感兴趣的人都可以使用纯文本


所以你也应该获得SSL证书。。。不是一个自签名的更新:我发现下面的链接是不言自明的,并且解决了我的第一个问题-唷!现在请有人帮我回答第二个问题好吗?是的,不过对Winforms App.config文件中的预加密字符串也会这样做吗??Iv在解密过程中实现了完美的工作,并将其保存在内存中。