2

现在我们需要一个安全的地方来放置我们的连接字符串。我们希望将这些连接字符串放在与 Web.config 分开的外部文件中,以使部署更容易,但我们也希望对内部信息进行加密以确保安全。

有没有什么方法可以使用 Aspnet_regiis 工具来实现这一点?我了解如何使用它来加密 Web.config 文件中的部分,并且我们喜欢使用这种方法进行加密意味着在使用站点时会自动为我们进行解密。但我在这个主题上找到的信息似乎相互矛盾。

使用 aspnet_regiis 加密 ASP.NET 中的自定义配置部分 这个指向另一个问题的链接似乎表明我所要做的就是像往常一样设置外部配置文件,将敏感的连接字符串信息放在其中,然后运行 ​​Aspnet_regiis 工具正常,外部文件将被加密。

http://www.velocityreviews.com/forums/t722875-encrypting-external-config-section.html 但是该链接中的响应指出 Aspnet_regiis 不能用于加密外部部分。

那么这可以做到吗,如果不能,那么以编程方式完成所有这些是唯一的方法吗?

4

2 回答 2

2

我自己刚刚尝试过,我可以确认 Aspnet_regiis 工具确实会加密存储在外部配置文件中的连接字符串。在 Web.config 文件中,我使用“configSource”属性引用了外部定义的连接字符串,并在运行该工具后对其进行了加密。

于 2013-10-23T18:51:47.233 回答
0

您可以使用 C# 加密连接字符串

ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
                configMap.ExeConfigFilename = modulePath + "Web.Release.config";
                System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
                System.Configuration.ConfigurationSection section = config.GetSection("connectionStrings");
                if (!section.SectionInformation.IsProtected)
                {
                                   section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
                    config.Save();
                }
于 2017-08-16T06:29:20.820 回答