2

我有myapp.somenamespace.exe.config一个带有 connectionStrings 部分的文件,我需要对其进行加密。还有一些我想要完整的其他配置设置。所以我写了这个小工具来做这件事:

class Program
{
    static void Main(string[] args)
    {
        EncryptSection("myapp.somenamespace.exe.config", "connectionStrings");
    }
    static void EncryptSection(string fileName, string sectionName)
    {
        var config = ConfigurationManager.OpenExeConfiguration(fileName);

        var section = config.GetSection(sectionName);

        if (section.SectionInformation.IsProtected) return;

        secction.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");

        config.Save();
    }
}

会发生什么,它会创建一个名为myapp.somenamespace.exe.config.config- 添加重复.config扩展名的新配置文件,其中仅包含加密部分。它不会修改原始配置文件。

有什么想法为什么会出现这种奇怪的行为以及我该如何解决?

4

1 回答 1

1

更改此行:

EncryptSection("myapp.somenamespace.exe.config", "connectionStrings");

对此:

EncryptSection("myapp.somenamespace.exe", "connectionStrings");

MSDN 上的文档指出第一个参数实际上是he path of the executable (exe) file,因此它.configSave.

于 2013-04-04T03:24:35.450 回答