`

ASP.NET中web.config中加密连接字符串

阅读更多

旧版本的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

加黑的就是两个文件的区别。

分享到:
评论

相关推荐

    【ASP.NET编程知识】ASP.NET web.config中 数据库连接字符串加密解密.docx

    ASP.NET Web.config 中数据库连接字符串加密解密 ASP.NET 编程语言中,Web.config 文件是用于存储应用程序配置信息的文件之一。在这个文件中,我们通常会存储数据库连接字符串,但这些字符串中包含敏感信息,如...

    Asp.net WebConfig加密解密.rar

    案例通过利用微软提供的方式(RSAProtectedConfigurationProvider和DataProtectionConfgurationProvider)对Web.Config 中的数据库连接字符串进行加密和解密操作

    ASP.NET web.config中 数据库连接字符串加密解密

    在解密过程中,只要具备相应的密钥和解密算法,就可将加密字符串还原为可读的原始连接字符串。对于.NET应用程序而言,保持web.config文件的安全性是十分重要的,因此掌握如何利用aspnet_regiis.exe工具加密和解密web...

    C# ASP.NET - 加密解密Web.config文件

    Web.config文件存储了应用程序的配置信息,如数据库连接字符串、身份验证设置等,这些信息的安全性至关重要。本篇文章将深入探讨如何使用C# ASP.NET进行Web.config文件的加密与解密。 首先,我们要理解保护Web....

    asp.net access web.config denied

    您可能感兴趣的文章:详解ASP.NET配置文件Web.configasp.net代码中修改web.config节点的具体方法ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法asp.net web.config加密解密方法ASP.NET(C#)应用...

    c_加密Web.Config中的连接字符串

    除了使用配置提供者之外,还可以通过编程方式来实现Web.Config中连接字符串的加密和解密。以下是一个示例代码,展示如何使用`WebConfigurationManager`类来操作Web.Config文件中的`connectionStrings`部分。 ```...

    asp.net WEB.CONFIG form验证

    ASP.NET的Web.config文件是应用程序的核心配置文件,它包含了诸如连接字符串、身份验证、授权规则等关键设置。在本例中,我们关注的是"ASP.NET WEB.CONFIG form验证",这指的是使用Form身份验证(Forms ...

    Web.Config中的连接字符串的加密与解密

    ### Web.Config中的连接字符串的加密与解密 #### 背景 在现代软件开发过程中,安全性至关重要。尤其是在处理敏感信息如数据库连接字符串时更是如此。`Web.Config`是ASP.NET应用程序的核心配置文件,用于存储应用...

    web.config加密解密工具(三个软件集合)

    在IT行业中,尤其是在Web开发领域,`web.config`文件是一个至关重要的配置文件,它用于存储ASP.NET应用程序的各种配置信息,如数据库连接字符串、身份验证设置、URL重写规则等。当这些信息涉及到安全性,比如数据库...

    ASP.NET网站给wed.config加密解密,只要放到网站wed.config同一目录下即可运行

    在ASP.NET中,`web.config`文件是每个应用程序的核心配置文件,它存储了诸如连接字符串、身份验证设置、授权规则等敏感信息。为了保护这些信息不被未经授权的用户查看或修改,开发者有时会选择对`web.config`文件...

    WEBCONFIG数据库链接加密解密算法

    WebConfigEncryptDecrypt.aspx和WebConfigEncryptDecrypt.aspx.cs这两个文件很可能是一个简单的ASP.NET Web应用程序,用于实现Web.config文件中数据库连接字符串的加密和解密功能。WebConfigEncryptDecrypt.aspx可能...

    博客中web.config的加密与解密的Demo

    在ASP.NET开发中,`web.config`文件是一个至关重要的配置文件,它包含了应用程序的各种设置,如数据库连接字符串、身份验证信息、授权规则等敏感数据。为了保护这些信息不被未授权的用户读取,我们可以对`web.config...

    asp.net 禁用viewstate在web.config里

    您可能感兴趣的文章:详解ASP.NET配置文件Web.configasp.net代码中修改web.config节点的具体方法ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法asp.net web.config加密解密方法ASP.NET(C#)应用...

    web.config的数据库连接字符串进行加密[文].pdf

    ### Web.config中的数据库连接字符串加密方法详解 #### 一、背景介绍 在现代软件开发过程中,安全性变得尤为重要,尤其是在处理敏感信息如数据库连接字符串时。ASP.NET 2.0+ 提供了一种强大的机制来加密`web....

    web.config加密工具

    在IT行业中,Web应用程序的安全性至关重要,而`web.config`文件是ASP.NET应用程序的主要配置文件,其中包含了诸如数据库连接字符串、身份验证设置等敏感信息。为了保护这些信息不被未授权的用户访问或篡改,我们可以...

    web.config连接访问带密码Acccess

    在VB.NET中,我们可以使用`ConfigurationManager.ConnectionStrings`来获取`web.config`中定义的连接字符串,如下所示: ```vb.net Dim connectionString As String = ConfigurationManager.ConnectionStrings(...

    asp.net web.conifg文件加密

    ASP.NET中的`web.config`文件是应用程序的主要配置文件,它包含了诸如数据库连接字符串、身份验证设置、授权规则等敏感信息。为了保护这些信息不被未经授权的用户访问或修改,可以对`web.config`中的特定部分进行...

    web.config加密与解密

    1. 加密后,`web.config`文件中的相应节会变成不可读的加密字符串,但程序仍能正常运行。 2. 如果在多台服务器间部署,使用RSA加密时,需要导出公钥并导入到其他服务器,以确保解密的一致性。 3. 加密并不会提高应用...

    web.config加密解密

    在 ASP.NET 应用程序开发过程中,`web.config` 文件是整个项目的核心配置文件之一,它包含了应用程序运行所需的各项配置信息,例如数据库连接字符串、应用程序设置等敏感信息。为了保护这些敏感数据不被未经授权的人...

Global site tag (gtag.js) - Google Analytics