如何在覆盖ProtectedConfigurationProvider时从App.config中读取
本文关键字:App config 读取 时从 ProtectedConfigurationProvider 覆盖 | 更新日期: 2023-09-27 18:00:52
为了将配置设置集中在数据库中,我创建了一个从ProtectedConfigurationProvider继承的自定义类。在ProtectedConfigurationProvider::Decrypt((函数中,我从数据库中读取所有键和值。
我想在本地app.config文件中保留一些特定的键和值。如何在不创建无限循环的情况下从自定义类中访问这些值?
如果我尝试访问我的本地配置值,如下所示:
string test = ConfigurationManager.AppSettings["Test.String"].ToString();
从我的内心ProtectedConfigurationProvider::Decrypt((函数,我得到一个无限循环。
注意:我想把我的键/值保存在appSettings部分但看起来EncryptedData是唯一可以包含在其中的标签。
<appSettings configProtectionProvider="CustomProtectedConfigProvider">
<EncryptedData></EncryptedData>
</appSettings>
我认为这个代码片段可能会帮助你
Configuration objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");
if (objAppsettings != null)
{
objAppsettings.Settings.Add("hello", "world");
objConfig.Save();
}
我会尽力提供最接近答案的东西。钥匙不能放置在内
<appSettings></appSettings>
标记,因为它们只能包含EncryptedData标记。但是,密钥和值可以保存在中
<configProtectedData><providers></providers></configProtectedData>
部分。当调用重写的ProtectedConfigurationProvider::Initialize((函数时,可以通过"config"参数访问这些键和值,而不需要从而导致无限循环。