加密app/web中的自定义部分.配置文件

本文关键字:自定义部 配置文件 app web 加密 | 更新日期: 2023-09-27 18:13:12

我需要加密/解密自定义部分在app.config以及web。配置文件。我读到aspnet_regiis可以用于web。配置,但我需要这样做的编程。

打开mappedExeConfiguration后,我指定一个节如下:

ConfigurationSection connStrings = config.AppSettings;

加密/解密AppSettings部分。

如何指定自定义节的名称?当我在configurationSection对象之后输入自定义节的名称时,intelligent -sense无法识别它。(它只识别几个众所周知的部分)

注:在我的函数中,我需要将自定义节名作为字符串参数。

的例子:

<Configuration>
   <MyCustomTag> 
       <... data /> 
   </MyCustomTag> 
 </Configuration>

MyCustomTag是我需要加密/解密的部分

加密app/web中的自定义部分.配置文件

我通过使用在http://www.a2zmenu.com/Blogs/CSharp/How-to-encrypt-configuration-file.aspx

找到的代码实现了这一点

我将我的代码粘贴进去,但基本上它与那个网页上的代码几乎相同,除了更改了应用程序名称。

编辑:对于自定义部分,我不确定,因为我不需要使用它,但您可以在下一行中探索配置对象给您的内容。

Configuration config = ConfigurationManager.OpenExeConfiguration(GetAppPath() + "MyAppName.exe");

这是我的整个UpdateKey()方法,我现在意识到我从网页上适应了一点。也许有帮助。

public static void UpdateKey(string key, string newValue) 
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(GetAppPath() + "MyAppName.exe");
    config.AppSettings.Settings[key].Value = newValue;
    config.Save();
} 

然后在我保存了我的密钥之后,我调用

EncryptAppSettings("appSettings");

,也许你可以调整参数值,以适应那里

从VS 2010的命令提示符调用加密命令:

%windir%'Microsoft.NET'Framework64'v4.0.30319'aspnet_regiis  -pef "connectionStrings" "YOUR_PROJECT_NAME" -prov "DataProtectionConfigurationProvider"

解密:

%windir%'Microsoft.NET'Framework64'v4.0.30319'aspnet_regiis  -pdf "connectionStrings" "YOUR_PROJECT_NAME"

要加密,请使用HaGever在其答案中发布的命令行。

这个问题有一些示例代码来从代码中读取app.config文件。代码不能工作,因为加密密钥没有安装在用于解密app.config的机器上。