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

【转载】两个Web.config中连接字符串中特殊字符解决方案的更多相关文章

  1. web.config中连接字符串的读写和加密解密

    转载:https://www.cnblogs.com/shuai/articles/2248703.html 1.先来看看如何在web.config中写入数据库连接字符串.打开web.config文件 ...

  2. (译)利用ASP.NET加密和解密Web.config中连接字符串

    介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...

  3. 利用ASP.NET加密和解密Web.config中连接字符串

    摘自:博客园 介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Se ...

  4. MVC 项目中为什么会有两个web.config

    我们对MVC 并不陌生, 在创建MVC项目时,总会发现,在工程目录 中有两个 web.config 文件,一个是在工程的根目录下,一是在 views 下,两个web.config 中的内容也不尽相同, ...

  5. web.config connectionStrings 数据库连接字符串的解释

    先来看一下默认的连接SQL Server数据库配置<connectionStrings>   <add name="LocalSqlServer" connect ...

  6. 连接字符串中Min Pool Size的理解是错误,超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

    Min Pool Size的理解是错误的 假设我们在一个ASP.NET应用程序的连接字符串中将Min Pool Size设置为30: <add name="cnblogs" ...

  7. 学习Linux shell脚本中连接字符串的方法

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

  8. Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项)

    Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项) A.cat B.concat C.join D.+ 解答:B

  9. db2 jdbc连接字符串中 指定currentSchema

    场景:连接DB2数据库的,jdbc的连接字符串中没有给当前的数据源用户指定默认的schema,而当前的数据源用户下可能有多个schema,则会使用数据源用户默认的schema. 例如:admin用户的 ...

随机推荐

  1. android 解析XML方式(二)

    上一节中,我们使用DOM方式解析xml文档,该方式比较符合我们日常思维方式,容易上手,但是它直接把文档调入内存中,比较耗内存.在这里我们可以用另外一种方式解析xml,这个就是SAX方式. SAX即是: ...

  2. [转载]Spring Annotation Based Configuration

    Annotation injection is performed before XML injection, thus the latter configuration will override ...

  3. java基础知识回顾之javaIO类--RandomAccessFile类

    java.io 类 RandomAccessFile java.lang.Object java.io.RandomAccessFile1.该类不是IO流中的子类.2.该类既能读又能写.3.该对象内部 ...

  4. URAL 1244. Gentlemen (DP)

    题目链接 题意 : 给出一幅不完全的纸牌.算出哪些牌丢失了. 思路 : 算是背包一个吧.if f[j]>0  f[j+a[i]] += f[j];然后在记录一下路径. #include < ...

  5. java 多线程 CountDownLatch用法

    CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 主要方法 public CountDownLatch(int count); pu ...

  6. linux入门教程(六) Linux文件与目录管理

    在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件的路径,那么系统 ...

  7. 查看Linux版本系统信息方法汇总

    Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然.  1.# uname -a   (Linux查看版本当前操作系统内核信息)  Lin ...

  8. laravel速记(笔记)

    命令行: php artisan controller:make UserController This will generate the controller at /app/controller ...

  9. HDU 2836 Traversal 简单DP + 树状数组

    题意:给你一个序列,问相邻两数高度差绝对值小于等于H的子序列有多少个. dp[i]表示以i为结尾的子序列有多少,易知状态转移方程为:dp[i] = sum( dp[j] ) + 1;( abs( he ...

  10. NYOJ-253 凸包

    LK的旅行 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 LK最近要去某几个地方旅行,她从地图上计划了几个点,并且用笔点了出来,准备在五一假期去这几个城市旅行.现在 ...