在ASP.NET2.0里不但进一步扩展了配置文件web.config,更为重要的是系统提供了一组API函数,让我们可以以编程的方式从配置文件里提取信息
首先,先看看如果从web.config里提取appSettings里的配置值,示例代码如下:
利用ASP.NET2.0提供的一组API函数,您可以很容易的获取AppSettingsSection里所有的Keys/value组对,如下:
Configuration config
= WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
AppSettingsSection appSettings = (AppSettingsSection) config.GetSection("appSettings");
string[] appKeys = appSettings.Settings.AllKeys;
for (int i = 0; i < appSettings.Settings.Count; i++)
...{
//这里只进行简单的输出
Response.Write(appSettings.Settings[appKeys[i]].Value);
Response.Write("
");
}
上面代码只是进行简单的输出所有Key的value值,然而,你可能想获取的仅仅是某一个key的值,这也非常简单,如下:
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings");
string pateTitle= appSettings.Settings["pagetitle"].Value; //获取key为patetitle的value值
string siteLOGO= appSettings.Settings["siteLOGO"].Value; //获取key为siteLOGO的value值
对于数据库连接字符串,在ASP.NET2.0里提供了专门的配置节如下:
connectionString="Data Source=SQLEXPRESS;AttachDbFilename=JsskDb.mdf; … .."/> connectionString="Data Source=SQLEXPRESS;Integrated Security=True; … …"/> 这样我们很容易获取数据库连接字符串如下: Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); ConnectionStringsSection conSection = (ConnectionStringsSection)config.GetSection("connectionstring "); ConnectionStringSettingsCollection conCollection = conSection.ConnectionStrings; foreach (ConnectionStringSettings conSetting in conCollection) ...{ Response.Write(conSetting.ConnectionString); Response.Write(" } 另外,利用API函数,你同时还可以在代码里更改web.config数据库连接的配置的值,如下 Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); ConnectionStringsSection conSection = (ConnectionStringsSection)config.GetSection("connectionStrings"); conSection.ConnectionStrings["SQLConnectionString"].ConnectionString = "Data Source=SQLEXPRESS;Integrated Security=True; … …"; config.Save(); 这里最有意思的可能就是类的转换,在 在ASP.NET官方网站曾经对此专门介绍,可以找不到该文件了。 在ASP.NET2.0里提供了两种方式对数据库连接字符串加密,一种是使用ASP_regii命令,一种是通过代码,下面显示的是通过代码方式对数据库连接字符串加密,代码如下: Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); ConfigurationSection configSection = config.GetSection("connectionStrings"); if (configSection.SectionInformation.IsProtected) ...{//如果已经加密,就不用再加密了 configSection.SectionInformation.UnprotectSection(); config.Save(); } else ...{ configSection.SectionInformation.ProtectSection ("DataProtectionConfigurationProvider"); config.Save(); } 这样,你检查该文件的配置可能如下: adynN8gQAAAACAAAAAAADZgAAqAAAABAAAABIhtOW …PE Trackback: http://tb.blog.csdn.net/TrackBack.ASPx?PostId=1487303
");

