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 に答える