你在哪里存储连接字符串?

你在哪里存储连接字符串?

问题描述:

在我所有的VB6应用程序中,连接信息都存储在数据库的加密字段中。没有人可以访问数据库,如果有人这样做,他们只能看到一堆加密值。你在哪里存储连接字符串?

这种方法总是有缺陷。在应用程序中使用硬编码的id /密码获取所需的连接信息,该应用程序将获取此连接信息并形成一个字符串。

在.NET世界中,我目前在app.exe.config文件中存储这个硬编码的ID /密码。 推荐的方法是加密文件中的连接字符串?

我可以使用哪些类来执行此加密/解密?

阅读:

Encrypting Configuration Information in ASP.NET 2.0 Applications

基本上,ASP.NET架构有你需要的加密工具,以及.NET配置子系统知道如何在需要时解密 - 所以有真的都已经在那里,准备好你的使用!

要加密,你应该使用aspnet_regiis实用,这样的事情:

aspnet_regiis.exe -pef "connectionStrings" "C:\Inetpub\wwwroot\MySite" 

而对于解密 - 什么都不需要做,.NET透明地为您处理此。

更新:这些机制为NET的所有 - 它们是.NET的基本基础结构的一部分。您可以将这些技巧和配方用于您的控制台应用程序或Windows服务。微软仅为ASP.NET案例提供了工具来加密web.config的各个部分 - 但API和调用可供任何类型的.NET应用程序使用 - 从控制台应用程序中自行完成一项Windows服务。

我有一个small utility on my SkyDrive附带完整的.NET源代码,告诉你如何加密任何.NET配置文件的任何部分。随时检查,并以您认为合适的方式在您的努力中使用它。

+0

为什么大家都投票呢? OP甚至没有在ASP.NET上工作! – 2010-07-30 18:29:58

+0

我想如果有人回答,他的代表超过50K,他肯定是一个永远正确的天才......?这不是对marc_s的刺伤;我一直在这里看到这种情况,这对社区的价值是不利的。它需要停下来。 – 2010-07-30 18:31:13

+0

Marc_S, 我正在研究基于客户端的应用程序。与ASP .NET无关。从该实用程序的外观来看,它看起来像是可以与IIS一起使用的东西。 – abhi 2010-07-30 18:34:19