在wpf(c#)中创建app.config
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<clear />
<add name="Name"
providerName="MySql.Data"
connectionString="Server=.net;Uid=;Pwd=H;Database=;charset=utf8;Allow Zero Datetime=true;" />
</connectionStrings>
</configuration>
使用了代码C#:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConnectionStringsSection conStr = config.ConnectionStrings;
if (!conStr.SectionInformation.IsProtected)
{
conStr.SectionInformation.ProtectSection("RSAProtectedConfigurationProvider");
conStr.SectionInformation.ForceSave = true;
config.Save();
}
else
{
foreach (ConnectionStringSettings ss in conStr.ConnectionStrings)
Console.WriteLine(ss);
Console.Read();
}
config.Save();
- 导致异常:
{“无法使用提供程序加密”connectionStrings“部分 'RsaProtectedConfigurationProvider'。来自的错误消息 provider:对象已存在。\ r \ n“}
答案 0 :(得分:1)
答案 1 :(得分:1)
我在Save上遇到了同样的异常。通过以管理员身份运行应用程序,我能够解决这个问题。
我在项目中添加了一个app.manifest文件,并改变了执行级别,如下所示:requestedExecutionLevel level =“requireAdministrator”uiAccess =“false”
这样,我总是以管理员身份运行,并且有权保存加密部分。
答案 2 :(得分:-1)
您可以查看使用aspnet_regiis.exe
为您执行加密。参考这个
MSDN Link
这样您就可以在不编写代码的情况下执行加密。