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

userid =  testhtml

password = aps'";web

那么链接字符串的写法为:数据库

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

若是链接字符串写在web.configxml文件)中,只要把双引号做html转义(替换成&quote;),程序不须要作任何改动,链接字符串改成:ide

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.1pacth,不然System.Data.SqlClient.SqlConnent类的链接字符串不支持双引号。

若是登陆或密码包含如下字符[]{}(),;?*! @则使用SQL Query Analyer不能链接数据库
测试

 

Web.config中链接字符串的解决方案以下ui

1.直接在Web.config中写明文链接字符串加密

这种方式优势:spa

a.无需使用第三方工具

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

缺点:

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

则必须成对出现。

 

b.另外用户必须知道5XML转义字符(若是链接字符串中含有特殊字符)

<

<

小于号

&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.必须使用第三方工具,加密解密

相关文章
相关标签/搜索