在.NET中存储数据库连接细节的最佳实践是什么?

12

可能会有重复(问题),但我特别寻找.NET的最佳实践。

如何以安全的方式存储数据库连接字符串、用户名、密码等信息?在大多数情况下,加密的app.config文件是最好的选择吗?

我还想能够在配置文件中设置密码,并在应用程序启动后立即对其进行加密。(我并不要求解决方案,因为我之前已经解决了这个问题,我只是想寻找最佳实践)。

我也对你拥有良好体验的替代解决方案感兴趣。

5个回答

6
我认为最佳实践是尽可能使用集成安全性,原因有两个...它是最容易管理的解决方案,也是最容易正确执行的解决方案。
如果由于某种原因无法使用集成安全性,并且必须使用用户名和密码,请使用类似企业库的配置管理器来加密Web.config文件的部分内容。

谢谢,我以前从未使用过企业库,我会去看看。 - Ezombort
连接根据连接字符串和用户标识进行池化。使用综合安全性可能会导致连接池碎片化。(http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx)。 - Vasu Balakrishnan
@Vasu - 我之前不知道这个问题,但我猜这对于Windows应用程序来说最为重要,因为ASP.NET应用程序通常使用相同的用户连接(即工作进程标识)。 - JohannesH

4

2

那将是web.config文件。如果安全性是一个问题,您可以加密连接字符串。


0
使用app.config或web.config加密敏感部分。.NET提供了相应的工具。 如果您正在使用多个数据库并且需要高级连接功能,dotConnect是一个绝佳选择。我个人尝试过它,它为.NET中的数据库操作提供了增强的安全性和性能。 对于使用ODBC的应用程序部分,ODBC驱动程序是一个强大的解决方案,可以确保安全高效的连接。

0

最近我发现非常有用的一个东西是Microsoft的单点登录服务。如果需要使用SQL身份验证,您可以将实际凭据存储在加密数据库中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接