zoukankan      html  css  js  c++  java
  • 【转载】两个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.configxml文件)中,只要把双引号作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.1pacth,否则System.Data.SqlClient.SqlConnent类的连接字符串不支持双引号。

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

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

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

    这种方式优点:

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



  • 相关阅读:
    LeetCode_21.合并两个有序链表
    LeetCode_70.爬楼梯
    LeetCode_001.两数之和
    LeetCode_509.斐波那契数
    Eclipse(2019-03版本)汉化
    修改Gradle本地仓库
    解决Eclipse导入Gradle项目时在 Building gradle project info 一直卡住
    Eclipse设置字体大小
    @Transactional spring 事务(转载)
    @Transactional spring 事务失效(转载)
  • 原文地址:https://www.cnblogs.com/heye/p/3699570.html
Copyright © 2011-2022 走看看