如何在运行时更新(添加/修改/删除)web.config 的 AppSettings 部分中的键

2023-11-24

我喜欢更新中定义的键/值AppSettings的部分Web.config在运行时。但我不想真正将它们保存到Web.config file.

我有一个巨大的 Web 应用程序,其中包含许多模块、DLL 和源代码文件。数据库配置、加密密钥、Web 服务的用户名和密码等一系列关键信息都保存在AppSettings的部分web.config文件。最近的项目需求需要我将这些值移出web.config并保存在安全的储存处。

我已经将这些值保护在外部位置,并且可以在应用程序启动时读回它们。

这是示例代码。

全局.asax

public class Global: System.Web.HttpApplication {
    protected void Application_Start(object sender, EventArgs e) {
        Dictionary<string, string> secureConfig = new Dictionary<string,string>{};

        // --------------------------------------------------------------------
        // Here I read and decrypt keys and add them to secureConfig dictionary
        // To test assume the following line is a key stored in secure sotrage.
        //secureConfig = SecureConfig.LoadConfig();
        secureConfig.Add("ACriticalKey","VeryCriticalValue");
        // --------------------------------------------------------------------

        foreach (KeyValuePair<string, string> item in secureConfig) {
            ConfigurationManager.AppSettings.Add(item.Key, item.Value);
        }
    }
}

正如您可能注意到的那样,更改对的引用是不可行的AppSettings在由多个编程团队创建的大量代码中,从我的中读取他们的设置secureConfig dictionary另一方面,我不应该将这些值保存在web.config文件可供 Web 管理员和操作员、系统管理员和云管理员使用。

为了让程序员的生活更轻松,我想让他们添加自己的价值AppSettings的部分web.config在开发期间,但它们将从那里删除并稍后在部署期间放入安全存储中,但是这些值应该可以透明地用于编程,因为它们仍然在AppSettings部分。

Question: 我怎样才能添加值AppSettings在运行时,程序可以使用以下方式读取它们ConfigurationManager.AppSettings["ACriticalKey"] to get "VeryCriticalValue"而不将它们保存在 Web.Config 中?

请注意: ConfigurationManager.AppSettings.Add(item.Key, item.Value);给我ConfigurationErrorsException有消息The configuration is read only.

请注意:最好一些设置应该能够保留AppSettings像之前一样


我知道这是一个老问题,但我遇到了同样的问题,我发现 Set 的工作方式与 Add 相同,并且不会引发异常,因此只需将 Add 替换为 Set,如下所示:

ConfigurationManager.AppSettings.Set(item.Key, item.Value);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在运行时更新(添加/修改/删除)web.config 的 AppSettings 部分中的键 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 读取 Unicode 文件 C++

    我有一个简单的问题要问 我有一个以 FFFE 开头的 UTF 16 文本文件要读取 有哪些C 工具可以处理这种文件 我只想阅读它 过滤一些行 然后显示结果 它看起来很简单 但我只有处理普通 ascci 文件的经验 而且我很着急 我正在使用
  • 同步单例的正确使用?

    所以我正在考虑建立一个业余爱好项目 这是一种临时性的事情 只是为了温习我的编程 设计 它基本上是一个多线程网络蜘蛛 更新相同的数据结构object gt int 因此 为此使用数据库绝对是大材小用 我唯一能想到的是用于包含我的数据结构的线程
  • mysql:使用SET还是很多列?

    我正在使用 PHP 和 MySQL 我有以下记录 具有各种分层 事件类型 的事件 事件可以有多个类别和子类别 但此类类别和子类别的数量是固定的 带时间戳 设置桌子的最佳方式是什么 我是否应该有一堆列 30 左右 其中包含表示是或否的枚举 指
  • 如何递归地查找模块中的所有模块和类?

    如果你有 module A class B end end 您可以通过 A constants 找到 B 和类似的类 但是 在 Ruby 1 9 3 中 如果 B 在另一个模块中 则无法获取 B 在 Ruby 1 8 7 中您可以 modu
  • UI布局初始化错误-center-pane元素不存在

    我正在使用具有 centerLayout westLayout northLayout 的布局结构 当我运行该文件时 出现以下错误 UI 布局初始化错误 中心窗格元素不存在 中心窗格是必需的元素 我的模板是
  • Flutter 问题:滚动时列表视图重建项目

    当我滚动到列表视图的底部时 底部的项目将被重建 同样 当我滚动到顶部时 我的第一个项目会被重建 第一个项目是一张带有可选筹码的卡片 当发生这种情况时 该筹码将被取消选择 入口 动画也会重播 我怎样才能阻止这个 这是基本代码 它使用 simp
  • 如何修复NoSuchMethodError?

    我使用 Scala 2 10 0RC1 和 sbt 0 12 1 是什么原因导致此运行时错误以及如何修复此错误 在 2 9 2 上运行良好 确切的错误消息是 java lang NoSuchMethodError scala Predef
  • 如何使用 ScalaMock 模拟按名称调用参数(如 getOrElse)?

    我希望能够模拟返回值getOrElse方法 以便它返回传递的内容orElseScalaMock 的按名称调用参数 trait ToBeMocked def getOrElse arg Int orElse gt String String
  • 向测试厨房添加属性

    我正在尝试覆盖中的属性java食谱与测试厨房 当我尝试跑步时kitchen converge default centos 64 出现严重的 YAML 错误 driver name vagrant customize memory 1024
  • Angular4x:带有过期参数的 ngx-cookie-service

    我正在使用 ngx cookie service 组件 但是一旦我关闭浏览器 cookie 就会消失 也许我必须设置过期参数 但我无法获取它 如下文档所述 set name string value string expires numbe
  • Scala 宏:“无法从具有未解析类型参数的类型 T 创建 TypeTag”

    我正在玩 Scala 新宏并发现了这个gist from akshaal 看起来我不太明白 鉴于以下特征 fieldsMacro 或多或少与 akshaal 示例中的相同 case class Field I lt AnyRef name
  • InternalError_:频谱扫描错误。 S3 到 Redshift 复制命令

    我正在尝试使用 COPY 命令将一些数据从 S3 存储桶复制到 redshift 表 文件的格式是 PARQUET 当我运行执行 COPY 命令查询时 出现 InternalError Spectrum Scan Error 这是我第一次尝
  • 自从我将 Firebase 应用程序升级到新控制台(仅限)后,Facebook 登录不再有效

    自从我升级了 Firebase 控制台 仅 sdk 尚未更新 以来 我有一个具有 Facebook 和电子邮件登录功能的工作应用程序 Firebase 3 0 之前的应用程序版本之前可以运行 但在控制台升级后 它不再能够使用 Faceboo
  • 在 MATLAB 中获取排列的映射

    假设我有两个数组 其中一个是另一个的排列 A 2 1 5 3 7 B 7 2 1 3 5 两个数组中都没有重复 如何获得两者之间的排列映射 E g A gt B应该 2 3 5 4 1 意思是 A 1 gt B 2 A 2 gt B 3 A
  • jQuery(事件):监视元素样式

    假设有这样的元素 div class watch me style display none Watch Me Please div 正如我们所看到的 上面的元素样式是display none 我怎样才能制作脚本来观看这个元素 当该元素样式
  • C++ 中的根基类

    NET 中的每个对象都 直接或间接 继承自公共根基 Object C 中有这样通用的对象根吗 我该如何通过any对象函数 public void DoSomeStuff object o 编辑 为了澄清 目的 在该函数中我想调用指向成员函数
  • 使用内联回调

    我是 Twisted 的新手 我正在尝试编写一个简单的资源 显示数据库中的名称列表 这是我的代码的一部分 code from my ContactResource class def render GET self request def
  • 无法安装适用于 Android Studio 的英特尔 HAXM。错误 x86 仿真当前需要硬件加速

    我刚刚安装安卓工作室没有任何问题 但是当我运行模拟器时 出现错误 无法在模拟器中启动 AVD 输出 仿真器仿真器 错误 x86 仿真当前需要硬件加速 请确保英特尔 HAXM 已正确安装并可用 CPU加速状态 HAX内核模块未安装 我发现了很
  • 移动条码设备用C++还是C#编程?

    我将使用移动条形码扫描仪开发一些应用程序 并且需要在 C 和 C 之间进行选择在扫描仪上打码 我正在考虑Intermec的CK31或类似的 wifi 扫描选择 可编程性和用户界面选项的组合 根据其规格表 它运行 Windows CE NET
  • 如何在运行时更新(添加/修改/删除)web.config 的 AppSettings 部分中的键

    我喜欢更新中定义的键 值AppSettings的部分Web config在运行时 但我不想真正将它们保存到Web config file 我有一个巨大的 Web 应用程序 其中包含许多模块 DLL 和源代码文件 数据库配置 加密密钥 Web