我正在为ASP.NET应用程序编写和安装程序,我有一些数据字段,(连接字符串,smtp服务器等),我希望安装程序从用户输入构建,加密并存储在Web.config文件。我遇到的问题是WebConfigurationManager和ConfigurationManager都设计用于处理现有配置文件。如何构建新的配置文件,并在保存之前对其进行加密?
答案 0 :(得分:3)
我建议从不包含所需字段的基本配置文件开始,然后使用XDocument
或WebConfigurationManger
添加配置信息并对其进行加密。
代码包含内容下降:
private void EncryptConfig()
{
// Open the Web.config file.
Configuration config =
WebConfigurationManager.OpenWebConfiguration("~");
// Get the connectionStrings section.
ConnectionStringsSection section =
config.GetSection("connectionStrings") as ConnectionStringsSection;
// Toggle encryption.
if (section.SectionInformation.IsProtected)
{
section.SectionInformation.UnprotectSection();
}
else
{
if (!section.SectionInformation.IsLocked)
{
section.SectionInformation
.ProtectSection("RsaProtectedConfigurationProvider");
section.SectionInformation.ForceSave = true;
//Save changes to the Web.config file.
config.Save(ConfigurationSaveMode.Full); }
}
}