在Asp.Net2.0中保存数据库链接字符串
在Asp.Net2.0中保存数据库链接字符串
原文:http://my.donews.com/buffalo319/2007/06/29/%E5%9C%A8aspnet20%E4%B8%AD%E4%BF%9D%E5%AD%98%E6%95%B0%E6%8D%AE%E5%BA%93%E9%93%BE%E6%8E%A5%E5%AD%97%E7%AC%A6%E4%B8%B2/
我们经常在web.config文件中存储数据库链接字符串,可以方便以后数据库的更改和迁移。
在ASP.Net1.1中
<configuration> <appSettings> <add key="myconnection" value="server=myserversql2005;
initial catalog=AdventureWorks;user id=test;pwd=test"/> </appSettings> ... </configuration>
其中字符串的写法可以有:
- server=Hostname\InstanceName;initial catalog=DatabaseName;uid=test;pwd=test;
- server=Hostname\InstanceName;database=DatabaseName;uid=test;pwd=test;
- Data Source=Hostname\InstanceName;initial catalog=DatabaseName;uid=test;pwd=test;
- server=Hostname\InstanceName;initial catalog=DatabaseName;Integrated Security=True;等等
- server等同于Data Source;
- initial catalog等同于database;
- uid等同于user id ;
- pwd等同于password;
- 如果是本机身份验证可以写Integrated Security=True;
- 字符串不区分大小写
读取字符串的用法:
string constr = ConfigurationSettings.AppSettings[”myconnection”];
在ASP.NET 2.0中:
Microsoft 把数据库链接字符转专门提取出来放在connectionStrings节点里,当然原来的appsettings节点还是可以按照原来的方法使用的。
<configuration> <appSettings/> <connectionStrings> <add name="myconnection" connectionString="server=myserversql2005;initial catalog=AdventureWorks; user id=test;pwd=test;"/> </connectionStrings> </configuration>
使用的时候新的对象System.Configuration.ConfigurationManager
代替原来的System.Configuration.AppSettings
对象:
string constr = System.Configuration.ConfigurationManager.ConnectionStrings[”myconnection”].ConnectionString;
如果要读取appsettings节点里的字符串使用:
string constr = System.Configuration.ConfigurationManager.AppSettings[”myconnection”];
加密字符串:
由于数据库密码是在web.config文件中以明文的形式显示的,为了安全起见我们可以采用以下的方法进行加密。
-
在命令行界面下进入到.NET 2.0 framework 目录,如下:
C:WINDOWSMicrosoft.NETFrameworkv2.0.50727 - 运行以下命令:
aspnet_regiis.exe -pe "connectionStrings" -app "/connectionTest"
其中: connectionStrings是要加密的节点的名称,connectionTest是要加密的虚拟目录。
控制台会提示加密成功,打开web.config文件就可以看到加密后的内容。
解密使用命令的参数把pe改为pd即可。