中午吃鸡肉能减肥吗:web.config 加密与解密 实战
首先添加引用:
using System.Web.Configuration;
加密操作如下:
private void ProtectSection(string sectionName, string provider)
{
Configuration config =
WebConfigurationManager.
OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection(sectionName);
if (section != null && !section.SectionInformation.IsProtected)
{
section.SectionInformation.ProtectSection(provider);
config.Save();
}
}
解密操作如下:
private void UnProtectSection(string sectionName)
{
Configuration config =
WebConfigurationManager.
OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection(sectionName);
if (section != null && section.SectionInformation.IsProtected)
{
section.SectionInformation.UnprotectSection();
config.Save();
}
}
实践:
加密前的配置文件:
加密后的配置文件:
---------------------------------------------------------------------------------------------------
或者://解密可以写在页面,但也加密如何进行?
protected void Page_Load(object sender, EventArgs e)
{
//获取网站根目录下的web.config配置文件对蠏
Configuration config = WebConfigurationManager.OpenWebConfiguration("~/");
//获取appSettings配置块信息
ConfigurationSection appSettings = config.GetSection("appSettings");
//判断配置块是否加密,如果己经加密,则进行解密
if (appSettings.SectionInformation.IsProtected)
{
appSettings.SectionInformation.UnprotectSection();
}
else
{
//如果没有加密,则调用ProtectSection方法进行加密工作
appSettings.SectionInformation.ProtectSection(
"DataProtectionConfigurationProvider");
}
//保存配置信息
config.Save();
Response.Write("读取web.config配置文件中的配置节
");
foreach (string key in WebConfigurationManager.AppSettings.Keys)
{
Response.Write("键值名: " + key + "
");
Response.Write("键值值为: " + WebConfigurationManager.AppSettings[key] + "
");
}
}