web.config的数据库连接字符串进行加密
连接参考:http://wenku.baidu.com/link?url=nwGug8wxz143A4pvBE_kN6vMU7aF3ojwCKJOyN-TQleZ07iAYrjx_FnFVDOtZAF8gbJ8UIwZXoPMWk7J0iZNd3IP_niggQGMLr2A6UgTcC3
旧版本的ASP.NET将连接字符串直接保存在ASPX页面中。回想一下,连接字符串包 含了数据服务器名称和用户账户等信息,有时候甚至还包含了密码。在代码中包含以上信息是非常不好的习惯,原因有二。首先,这些信息可以被设计小组中的每一 位程序人员看到(但是站点访问者不能在浏览器上看到)。第二,在整个Web站点中的每一个拥有该连接的地方,都必须进行维护和更新。更新密码成为了一项繁 重的工作。
ASP.NET 2.0提供了一个选项可以将连接字符串移动至Web.config文件的连接区域,给字符串一个名称并将其加密。然后ASP.NET 2.0页面就通过这个名称来引用连接字符串。保存连接字符串至Web.config的步骤并不复杂。打开位于站点根目录下的Web.config文件。找 到被<connectionString>界定的区域(如果不存在,可自行添加)并在<Add>标记中输入如下代码。该标记有三 个属性:name、connectionString和providerName。属性name就是将会在页面中使用的连接字符串的普通名称。 connectionString属性应当设置为连接至数据库的完整的连接字符串,如前所述。
e.g.
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<add name="SQLProfileConnString"
connectionString="server=FOX;database=MSPetShop4Profile;user
id=mspetshop;password=pass@word1;min pool size=4;max pool size=4;"
providerName="System.Data.SqlClient" />
<add name="SQLMembershipConnString"
connectionString="server=FOX;database=MSPetShop4Services;user
id=mspetshop;password=pass@word1;min pool size=4;max pool size=4;"
providerName="System.Data.SqlClient" />
<add name="SQLConnString1"
connectionString="server=FOX;database=MSPetShop4;user
id=mspetshop;password=pass@word1;min pool size=4;max pool size=4;"
providerName="System.Data.SqlClient" />
<add name="SQLConnString2"
connectionString="server=FOX;database=MSPetShop4;user
id=mspetshop;password=pass@word1;max pool size=4;min pool size=4;"
providerName="System.Data.SqlClient" />
<add name="SQLConnString3"
connectionString="server=FOX;database=MSPetShop4Orders;user
id=mspetshop;password=pass@word1;min pool size=4;max pool size=4;"
providerName="System.Data.SqlClient" />
<add name="OraProfileConnString" connectionString="" providerName="System.Data.OracleClient" />
<add name="OraMembershipConnString" connectionString="" providerName="System.Data.OracleClient" />
<add name="OraConnString1" connectionString="" providerName="System.Data.OracleClient" />
<add name="OraConnString2" connectionString="" providerName="System.Data.OracleClient" />
<add name="OraConnString3" connectionString="" providerName="System.Data.OracleClient" />
</connectionStrings>
<appSettings>
<!-- Pet Shop DAL configuration settings. Possible values:
PetShop.SQLServerDAL for SqlServer, PetShop.OracleServerDALfor Oracle.
-->
</appSettings>
</configuration>
通过使用命令,可以将Web.config文件的连接字符串区域加密。当ASPX页面请求连接字符串时,将由ASP.NET自动对信息进行解密。加
密必须由以下命令行来执行。依次单击Start/Run/cmd并切换至C:\WINDOWS\ Microsoft.net\ Framework\
v2.0.xxxx,其中xxxx是您的软件版本。如果C:\Websites\BegAspNet2Db是站点根目录的话,即可输入如下命令行:
aspnet_regiis –pef connectionStrings C:\Websites\BegAspNet2Db
加密连接字符串的命令行工具还可以使用虚拟路径语法(在IIS元数据库中的路径),而无需指定Web.config文件的完全限定路径,如下所示:
aspnet_regiis –pe connectionStrings –app /BegAspNet2Db
一旦执行完了加密过程,就可以打开Web.config文件,但是连接字符串已经被混淆。当ASP.NET需要,连接字符串即可自动解密,或者如果需要进行一些更改,例如修改密码,则可以手动输入以下代码来解密。
aspnet_regiis –pdf connectionStrings c:\Websites\BegAspNet2Db
请注意,在默认情况下,加密过程使用了一个基于加密算法执行的机器的键。解密过程(无论手动还是在处理页面过程中)必须发生在与加
密相同的机器上。例如,作为XCOPY部署的一部分,移动Web.config至另外一台机器将会导致Web.config无法解密,所以推荐在部署
Web站点至最终机器之后,再将连接字符串进行加密。
PS:petshop4.0安装的时候如果选择 “Full Install”,那么配置文件默认就加密了,这也是我一开始怎么也找不到连接字符串,然后用windows集成验证怎么也登不上去的原因。
后来发现在安装目录下有两个批处理文件:
1、加密EncryptWebConfig.bat
@echo off
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web"
PAUSE
2、解密DecryptWebConfig.bat
@echo off
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings" "D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web"
PAUSE
加黑的就是两个文件的区别。
web.config的数据库连接字符串进行加密的更多相关文章
- web.config connectionStrings 数据库连接字符串的解释
先来看一下默认的连接SQL Server数据库配置<connectionStrings> <add name="LocalSqlServer" connect ...
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...
- web.config connectionStrings 数据库连接字符串的解释(转载)
先来看一下默认的连接SQL Server数据库配置 1.默认生成 <connectionStrings> <add name="Exa*DB" connectio ...
- 不同数据库下的web.config中数据库连接字符串
<connectionStrings> <add name="OADBConnectionString" connectionString="Data ...
- web.config中连接字符串的读写和加密解密
转载:https://www.cnblogs.com/shuai/articles/2248703.html 1.先来看看如何在web.config中写入数据库连接字符串.打开web.config文件 ...
- ASP.NET数据库连接字符串的加密与解密
ASP.NET web.config中,数据库连接字符串的加密与解密. 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容 加密: ...
- (译)利用ASP.NET加密和解密Web.config中连接字符串
介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...
- 利用ASP.NET加密和解密Web.config中连接字符串
摘自:博客园 介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Se ...
- 【转载】两个Web.config中连接字符串中特殊字符解决方案
userid = test password = aps'"; 那么连接字符串的写法为: Provider=SQLOLEDB.1;Password="aps'"&quo ...
随机推荐
- 如何用SQL返回两个日期之间的所有连续日期
在层次查询中,Oracle引入了一个伪列level,用来表示当前行(节点)对应的level, 它从1开始计数,每多一层level的值就加1. 我们可以据此实现对两个日期/整数之间所有日期/整数的遍历. ...
- c#中的常用ToString()方法总结
c#中的常用ToString()方法总结 对于int,double等的tostring: C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToStri ...
- ajax实际的应用
假设两个选择框,前面一个是省份,后面一个是地级市.当选择某一省份的时候,后面的选择框会有此省份对应的地级市.可以根据ajax来实现. function load{ if(true){ var ...
- js基础之动画(二)
一.多物体同时运动 栗子一:多个Div,鼠标移入变高,动态下拉菜单 function startMove(obj,iTarget){ clearInterval(obj.timer); obj.ti ...
- NSDateFormatter 根据时间戳求出时间
NSDateFormatter 根据时间戳求出时间 - (void)detailWithStyle:(NSString*)style time:(NSInteger)time { // NSStrin ...
- php file_get_contents curl发送cookie,使用代理
$auth = base64_encode('LOGIN:PASSWORD');//LOGIN:PASSWORD 这里是你的账户名及密码 $aContext = array( 'http' => ...
- 12.Object-C--浅谈OC的内存管理机制
昨天学习了OC的内存管理机制,今天想总结一下,所以接下来我要在这里bibi一下:OC的内存管理. 首先我要说的是,内存管理的作用范围. 内存管理的作用范围: 任何继承了NSObject的对象,对其他基 ...
- for循环语句示例应用
age = 22 #优化前 ''' for i in range(10): guess_num = int(input('input your guess num:')) if guess_num = ...
- javascript photo1
- inoic是什么
本篇只侧重框架提供的功能和能力的研究,请关注后续实际部署使用体验. 一.inoic是什么? inoic是一个可以使用Web技术以hybird方式开发移动app的前端开源框架. 二.inoic框架特点 ...