【转载】两个Web.config中连接字符串中特殊字符解决方案

userid =  test

password = aps'";

那么连接字符串的写法为:

Provider=SQLOLEDB.1;Password="aps'"";";Persist Security Info=True;User ID=spooltest;Initial Catalog=MyBeer20G;Data Source=HI4-SV09

如果连接字符串写在web.config(xml文件)中,只要把双引号作html转义(替换成&quote;),程序不需要做任何改动,连接字符串改为:

Provider=SQLOLEDB.1;Password=&quote;aps'&quote;&quote;;&quote;;Persist Security Info=True;User ID=spooltest;Initial Catalog=MyBeer20G;Data Source=HI4-SV09

如果连接字符串的密码中存在双引号,使用framework1.1时切记打上framework1.1的pacth,否则System.Data.SqlClient.SqlConnent类的连接字符串不支持双引号。

如果登录或密码包含以下字符:[]{}(),;?*!
@。
则使用SQL Query
Analyer不能连接数据库

Web.config中连接字符串的解决方案如下

1.直接在Web.config中写明文连接字符串

这种方式优点:

a.无需使用第三方工具

b.数据库连接一目了然,容易维护

缺点:

a.用户必须了解字符串生成的一个特殊规则,即:如果关键字所对应的值含有双引号,

则必须成对出现。

b.另外用户必须知道5个XML转义字符(如果连接字符串中含有特殊字符)

<

<

小于号

&gt;

>

大于号

&amp;

&

&apos;

'

单引号

&quot;

"

双引号

例子:

<add
key="ConnectionString"
value="server=ServerName;database=DBName;uid=test;pwd=&quot;a-=\;',./:&quot;&quot;&lt;&gt;?@&amp;b&quot;;"
/>

数据库连接:

server=ServerName;database=DBName;uid=test;pwd="a-=\;',./:""<>?@&b";

数据库密码:a-=\;',./:"<>?@&b (只有一个双引号)

(插曲:鉴于大多用户可能会忘记这些规则,
所以建议把这些规则写到Web.config注释中,
并提供测试页面,检测数据库连接字符串是否能连接数据库,
并提供非常友好的提示)

2.在Web.config维护加密过的连接字符串。

这种方式优点:

a.数据连接字符串保密性好,安全性高

b.无需了解过多的XML,数据库连接字符串知识

缺点

a.不容易维护

b.必须使用第三方工具,加密解密

上一篇:mysql锁机制(Innodb引擎)


下一篇:Python之父重回决策层,社区未来如何发展?