在Global.asax中以编程方式加密Web.Config

时间:2015-07-21 13:41:17

标签: c# asp.net-mvc encryption

我想在Application_Start(global.asax)期间检查然后以编程方式加密我的web.config,如果它尚未加密的话。

protected void Application_Start()
{
    EncryptConfig.Encrypt("/Web.config");
}

和我的方法

protected internal static void Encrypt(string applicationPath)
{
    private const string Provider = "RSAProtectedConfigurationProvider";
    private const string Section = "connectionStrings";

    var test = applicationPath;

    var confg = WebConfigurationManager.OpenWebConfiguration(applicationPath);
    var confStrSect = confg.GetSection(Section);

    if (confStrSect != null)
    {
        confStrSect.SectionInformation.ProtectSection(Provider);
        //confStrSect.SectionInformation.ForceSave = true;
        //confg.Save(ConfigurationSaveMode.Modified);
        confg.Save();
    }
}

我收到以下异常,我没有使用Google和StackOverflow解析运气

类型' System.Configuration.ConfigurationErrorsException'的异常发生在System.Configuration.dll中但未在用户代码中处理

附加信息:无法为请求的配置对象创建配置文件。

1 个答案:

答案 0 :(得分:0)

正如Dbugger在评论中提到的,解决方案是

WebConfigurationManager.OpenWebConfiguration("~"); –  dbugger