【转载】App.config/Web.config 中特殊字符的处理

写一个网站,遇到一个问题,发布以后,提示错误,但是即使打开错误提示(在web.config中打开),还是只提示错误,没提示什么地方错误,这让我知道了:是webconfig本身的错误,经过排除,是链接字符串中的特殊字符造成的!然后网上搜了一下,找到了这篇文章:

http://www.cnblogs.com/fordwayne/p/3200470.html

 

我们知道在应用程序中嵌入连接字符串可能导致安全漏洞和维护问题。使用 Ildasm.exe(MSIL 反汇编程序) 工具可以查看编译到应用程序源代码中的未加密连接字符串。此外,如果连接字符串发生更改,则必须重新编译应用程序。因此,强烈建议将连接字符串存储在应用程序配置文件中。

最近在学习SQL Server时遇到连接字符串包含特殊字符出现编译错误的问题。

App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration><startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup><connectionStrings><add name="DBconnStr" connectionString="Data Source=.;Initial Catalog=MyTest;User ID=sa;PassWord=123&456"/></connectionStrings>
</configuration>

  

 

由于数据库连接的密码中含有特殊字符"&",编译时出现如下如下错误信息:

显然编译器不认识"&456",怎么解决呢,总不能更换密码吧?

事实上App.config是xml文件,在xml文件中特殊字符要进行HTML转义。

HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用。这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,就要用到HTML转义字符串(Escape Sequence)了

 


HTML特殊转义字符列表

最常用的字符实体

显示

说明

实体名称

实体编号

 

空格

&nbsp;

&#160;

<

小于

&lt;

&#60;

>

大于

&gt;

&#62;

&

&符号

&amp;

&#38;

"

双引号

&quot;

&#34;

©

版权

&copy;

&#169;

®

已注册商标

&reg;

&#174;

商标(美国)

&#8482;

×

乘号

&times;

&#215;

÷

除号

&divide;

&#247;

所以只要把"&"进行转义就可以了,将PassWord改为

PassWord=123&amp;456"

成功通过编译。

转载于:https://www.cnblogs.com/iguxiaobei/p/3442052.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++远航之封装篇——类外定义和::

1、类内定义是把函数的具体实现写在类内部&#xff0c;默认是inline函数。 2、类外定义包含两种情况&#xff1a; &#xff08;1&#xff09;同文件类外定义 &#xff08;2&#xff09;不同文件类外定义

pipeline代码自动生成

如图所示&#xff0c;安装完插件后&#xff0c;Sample Step里就有相应的选项&#xff0c;选择某个选项后&#xff0c;点击Generate Pipeline Script按钮&#xff0c;就可以自动生成代码片段&#xff0c;然后放入pipeline流水线里就可以了 pipeline使用的是groovy脚本&#xff0…

一个简单的基于socket的通讯处理程序

2019独角兽企业重金招聘Python工程师标准>>> 这几天看书看得java网络编程&#xff0c;看到一个不错的&#xff0c;适合新手的&#xff0c;部分代码借鉴书上的&#xff0c;可能有地方还不是很成熟&#xff0c;不过可以借鉴一下&#xff0c;分为客户端和服务端&#x…

C++远航之封装篇——构造函数

1、为什么需要构造函数&#xff1f; 见博客http://blog.csdn.net/zhhymh/article/details/6236317 2、c中的内存分区 &#xff08;1&#xff09;栈区 int x0&#xff1b;int *pNULL&#xff1b; &#xff08;2&#xff09;堆区 int *p new int[20]; &#xff08;3&#xff0…

安装win_server_2012的方法

1、从微软官网下载评估版。 2、查看你的当前版本。以管理员身份运行cmd&#xff0c;然后输入“DISM /online /Get-CurrentEdition”。如果是评估版&#xff0c;例如Standard&#xff0c;把“ServerStandardEval”中的Eval这四个字母去掉&#xff0c;就是你的当前版本。下图表明…

DHCP中继处理办法

这两天一直在客户这边测试DHCP&#xff0c;由于客户的网络是现成的server 2008 是后来加上去的&#xff0c;所以没有多的IP地址用于测试&#xff0c;只好拿客户的楼层网段来测试&#xff0c;由于需要跨VLAN实行DHCP地址分配&#xff0c;所有需要做DHCP中继。废话不多说&#xf…

C++远航之封装篇——默认构造函数、初始化列表、拷贝构造函数

1、默认构造函数 没有参数&#xff1b;若有参数&#xff0c;则一定全部都有默认的参数值。 2、初始化列表 &#xff08;1&#xff09;概念 &#xff08;2&#xff09;特性 建议用初始化列表来初始化数据成员。初始化列表先于构造函数执行&#xff1b;初始化列表只能用于构造函…

C++远航之封装篇——析构函数

一、为什么需要析构函数&#xff1f; 见博客&#xff1a;http://blog.csdn.net/zhhymh/article/details/6239832 二、析构函数的理解 1、格式 2、必要性 释放资源。 3、什么时候调用&#xff1f; delet p时会调用析构函数&#xff1b;程序返回时&#xff0c;也会调用析构函数…

生成的数据库脚本没有注释?

1,选择Database->Generate Database 选中Generate name in empty comment就可以了转载于:https://www.cnblogs.com/hongjiumu/archive/2012/08/02/2620379.html

HDU 1312

View Code 1 #include<stdio.h>2 #include<stdlib.h>3 #include<string.h>4 以前用BFS写过&#xff0c;这次改用DFS写发现DFS掌握的不好&#xff0c;挑了好久才过&#xff0c;今下午才AC了两道题&#xff0c;还要加紧练习DFS&#xff01;5 int row,col,coun…

C++远征之封装篇——对象数组,对象成员

一、对象数组 &#xff08;1&#xff09;如下&#xff0c;delet [ ]p时&#xff0c;会调用三次析构函数 &#xff08;2&#xff09;细节 实例化对象数组时&#xff0c;每一个对象的构造函数都会被执行。销毁对象数组时&#xff0c;每一个对象的析构函数都会被执行。 二、对象成…

ehcache memcache redis 三大缓存男高音

2019独角兽企业重金招聘Python工程师标准>>> 最近项目组有用到这三个缓存&#xff0c;去各自的官方看了下,觉得还真的各有千秋&#xff01;今天特意归纳下各个缓存的优缺点&#xff0c;仅供参考&#xff01; Ehcache 在java项目广泛的使用。它是一个开源的、设计于…

C++远航之封装篇——深拷贝、浅拷贝

1、浅拷贝 如下&#xff0c;此时如果同一块内存释放两次&#xff0c;会报错 2、深拷贝

C++远航之封装篇——对象指针、this指针

1、使用new会调用构造函数&#xff0c;使用malloc不会使用构造函数。 2、加不加括号都行&#xff1f;YES 3、对象成员指针&#xff08;指针指向对象&#xff0c;而这对象是数据成员&#xff09; 4、this指针 下面这个没有歧义&#xff1a; 而下面这个有歧义&#xff1a; 为此&a…

poj 1274 The Perfect Stall

2019独角兽企业重金招聘Python工程师标准>>> The Perfect Stall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16888 Accepted: 7721 Description Farmer John completed his new barn just last week, complete with all the latest milkin…

C++远征之封装篇——常对象成员、常成员函数

一、常对象成员 二、常成员函数 &#xff08;1&#xff09;常成员函数中不能修改数据成员的值 &#xff08;2&#xff09;不能修改的原因 每个函数都默认带了一个this指针的&#xff0c;该指针指向该类的实例。当使用const来修饰时&#xff0c;其实是const Coordinate* this。这…

PHP建站环境搭建:汇总网上常见的1键安装包

PHP的程序很火&#xff0c;像博客&#xff1a;Wordpress、论坛&#xff1a;Discuz!、SNS&#xff1a;UCenter Home、CMS&#xff1a;DedeCMS等等都是比较流行的PHP程序&#xff0c;大家都在使用PHP类的程序&#xff0c;但对于很多初学者来说&#xff0c;直接上传到虚拟空间上一…

最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和...

最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和文章作者&#xff1a;Yx.Ac 文章来源&#xff1a;勇幸|Thinking (http://www.ahathinking.com) 转载请注明&#xff0c;谢谢合作。 以后新博客写的文章挑一些粘过来&#…

JEECMS编辑漏洞及随便拿webshell,啊哈哈

JEECMS是基于java技术开发&#xff0c;继承其强大、稳定、安全、高效、跨平台等多方面的优点 采用SpringMVC3Spring3Hibernate3Freemarker主流技术架构 安全性做得非常变态&#xff0c;当网站安装完成后就不再允许执行任何目录下的jsp文件了&#xff08;web.xml配置了过滤器禁…

C++之内存管理

1.申请内存&#xff1a;int *p new int;释放内存&#xff1a;delete p; 2.申请块内存&#xff1a;int *arrnew int[10];释放:delete []arr; 3.申请内存需要判断是否成功&#xff0c;释放内存需要设空指针 4.new与delete配套使用 转载于:https://www.cnblogs.com/xjyxp/p/11236…