将ConnectionString放在值的最佳位置

时间:2014-08-18 17:10:27

标签: c# asp.net web-config

我想这已被问过很多次了。但我找不到我要找的东西,所以我要再问一次。

敏感值是否可以放在machine.config或我服务器上另一个位置的其他配置文件中?

我的方案是,我必须访问位于同一服务器上的所有应用程序中的数据库。我真的想在web.config文件中删除该特定数据库的连接字符串。也许有可能在我的web.config中引用另一个配置文件,并且该配置文件位于我的服务器中的另一个地方(除了web文件夹),我的客户端无法使用ftp访问?

只是一个想法!

3 个答案:

答案 0 :(得分:4)

加密您的连接字符串并将其保留在web.config

Encrypt Connection String

答案 1 :(得分:1)

我不会说这是“最好的”,因为它没有考虑安全性等,但它回答了你的问题。

ASP.Net配置文件具有层次结构和支持继承,您可以在应用程序中的各个级别定义设置,这些设置将应用于继承层次结构。

ASP.NET Configuration File Hierarchy and Inheritance

答案 2 :(得分:1)

以下是Microsoft建议在.NET 4.5中保护连接字符串的内容:

http://msdn.microsoft.com/en-us/library/89211k9b%28v=vs.110%29.aspx

您应该使用Windows身份验证,加密连接字符串等。这是一种非常安全的方法。

如果您想要更具创意的内容,可以构建一个安全的服务来为您的应用程序提供连接字符串。这些连接字符串将存储在不同的数据存储中,并且将再次加密。 Azure使用与连接字符串类似的方法。它们存储在单独的“Windows Azure网站配置存储”中:

http://azure.microsoft.com/blog/2013/07/17/windows-azure-web-sites-how-application-strings-and-connection-strings-work/