读写配置文件(.congfig)步骤,web.config

来源:互联网 发布:linux reuseaddr 编辑:程序博客网 时间:2024/05/22 11:53

A.读配置文件的步骤:

 

(讲解一)

先在项目里面创建一个应用程序配置文件后缀是.config的。
1.怎么配置配置文件(App.config)?
文件位置必须放在界面层根目录内,文件初始名字不能改
示例:
   <?xml version="1.0" encoding="utf-8" ?>
   <configuration>
        <appSettings> <!--应用程序配置-->
                <!--添加配置项-->
                <add key="user" value="sa"/>  
                <add key="pwd" value="123456"/>  
        </appSettings>
   </configuration>

   2.读取配置文件的步骤

   第一步:添加引用 System.configuration
   第二步:引入配置类的命名空间 using System.Configuration;
   第三步:使用配置管理类(ConfigurationManager)来读取配置项的配置信息
   string user=ConfigurationManager.AppSettings["user"];
   string pwd=ConfigurationManager.AppSettings["pwd"];

 

 

(讲解二)
在ASP.NET2.0里不但进一步扩展了配置文件web.config,更为重要的是系统提供了一组API函数,让我们可以以编程的方式从配置文件里提取信息

首先,先看看如果从web.config里提取appSettings里的配置值,示例代码如下:


利用ASP.NET2.0提供的一组API函数,您可以很容易的获取AppSettingsSection里所有的Keys/value组对,如下:


+展开-C#
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("<BR>");

}


上面代码只是进行简单的输出所有Key的value值,然而,你可能想获取的仅仅是某一个key的值,这也非常简单,如下:


+展开-C#
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里提供了专门的配置节如下:


+展开-HTML
<connectionStrings>

    <add name="connectionstring"

connectionString="Data Source=SQLEXPRESS;AttachDbFilename=JsskDb.mdf; … .."/>

   

<add name="MyProviderConnectionString"

connectionString="Data Source=SQLEXPRESS;Integrated Security=True;  … …"/>

</connectionStrings>

 


这样我们很容易获取数据库连接字符串如下:


+展开-C#
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("<BR>");

}
本段来自<编程设计网>,转载请标明出处:<a href="http://www.code-design.cn/blogdetail588.html">http://www.code-design.cn/blogdetail588.html</a>

 

 

B. 写配置文件的步骤:

 

利用API函数,你同时还可以在代码里更改web.config数据库连接的配置的值,如下

 


+展开-C#
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

 

ConnectionStringsSection conSection

 = (ConnectionStringsSection)config.GetSection("connectionStrings");

 

conSection.ConnectionStrings["SQLConnectionString"].ConnectionString =

"Data Source=SQLEXPRESS;Integrated Security=True;  … …";

config.Save();

 

 

 

这里最有意思的可能就是类的转换,在<appSettings ></appSettings>里,使用的是AppSettingsSection类,在<connectionStrings></ connectionStrings>里使用的的是ConnectionStringsSection类,事实上,ASP.NET2.0提供的一组函数都是“配置节名+Section”的形式提供的类。

在ASP.NET官方网站曾经对此专门介绍,可以找不到该文件了。

 

在ASP.NET2.0里提供了两种方式对数据库连接字符串加密,一种是使用asp_regii命令,一种是通过代码,下面显示的是通过代码方式对数据库连接字符串加密,代码如下:


+展开-C#
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();

}

这样,你检查该文件的配置可能如下:


+展开-XML
<connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">

<EncryptedData>

<CipherData>

<CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAVClqG40BZkCjK40

adynN8gQAAAACAAAAAAADZgAAqAAAABAAAABIhtOW …PE

</CipherData>

</EncryptedData>

</connectionStrings>


转载请标明出处:<a href="http://www.code-design.cn/blogdetail588.html">http://www.code-design.cn/blogdetail588.html</a>