[转]web.config保护连接字符串及其它设置信息

不改代码,实现web.config或app.config的连接字符串加密解密 例如,以下命令创建一个名为 NetFrameworkConfigurationKey_components1 的 RSA 密钥容器,该容器是机器级密钥容器并且可以导出。在IIS下创建walkthrough.aspx,内容如下,运行后可见解密内容。step3:更新web.config(由app.config改名而来)文件。step5:改回app.config(由web.config改回)文件。web.config部分截图如下,生成好的加密字符串。好处:不用修改代码,微软自带功能,自动解密。 阅读详情

[转]web.config保护连接字符串及其它设置信息

本文英文原版及代码下载:
http://www.asp.net/learn/data-access/tutorial-73-cs.aspx

Scott Mitchell 的ASP.NET 2.0数据教程之73:保护连接字符串及其它设置信息

导言:

ASP.NET应用程序的设置信息通常都存储在一个名为Web.config的XML文件里。在教程的前面部分我们已经好几次修改过Web.config文件了.比如在第一章,我们创建名为Northwind的数据集时,数据库连接字符串信息自动的添加到Web.config文件的<connectionStrings>节点.再后来,在第3章里,我们手动更新了Web.config文件,添加了一个<pages>元素,对所有的ASP.NET页面运用DataWebControls主题.

由于Web.config文件包含了敏感的信息,比如连接字符串.所以确保Web.config文件内容的安全性是很重要的,对未经授权的访问者应隐藏这些敏感信息.默认情况下,对.config后缀名的文件的任何HTTP请求都由ASP.NET引擎来处理,它将返回“This type of page is not served”的信息,如图1所示.这意味着访问者无法通过在其浏览器的地址栏键入‘http://www.YourServer.com/Web.config’来访问你的Web.config文件.


图1:通过浏览器访问Web.config将返回“This type of page is not served”的信息

但是如果某个攻击者找到其它方法来访问你的Web.config文件的内容又怎么办呢?他会做怎样的修改?我们又采取怎样的步骤来保护Web.config文件的这些信息呢?幸运的是,Web.config文件的绝大多数节点并不包含敏感信息.如果攻击者知道你的ASP.NET页面使用的默认的主题的名字又会搞哪些破坏呢?

Web.config文件的某些节点包含了敏感信息,比如:connection strings, user names, passwords, server names, encryption keys等等.我们能在下面的这些节点找到这些信息:

.<appSettings>
.<connectionStrings>
.<identity>
.<sessionState>

在本文我们将考察保护这些敏感信息的技术.就像我们将看到的那样,.NET Framework 2.0版本包含了一个保护配置系统,我们可以使用它很容易地对选定的配置节点进行加密和解密.

注意:
在本文结尾部分,我们将看到微软对从一个ASP.NET应用程序连接到数据库时的建议.除了对连接字符串进行加密外,我们还可以连接到一个处于“安全模式”的数据库使你的系统更强大.


第一步:考察ASP.NET 2.0的保护配置选项

ASP.NET 2.0包含一个保护配置系统以对配置信息进行加密和解密.这些方法包含在.NET Framework,可用来编程加密和解密配置信息.该保护配置系统使用provider model模式.它允许开发者选择执行哪种加密.

.NET Framework包含了2种protected configuration providers:

.RSAProtectedConfigurationProvider :加密和解密时使用不对称RSA运算法则(RSA algorithm)

.DPAPIProtectedConfigurationProvider:加密和解密时使用Windows Data Protection API (DPAPI)

由于保护配置系统执行的是provider design模式,因此我们可以创建自己的protected configuration provider并运用到自己的程序里.具体过程可参阅文章《Implementing a Protected Configuration Provider》(http://msdn2.microsoft.com/en-us/library/wfc2t3az(VS.80).aspx)

RSA providers 和 DPAPI providers在加密和解密时使用“密匙”(keys),这些“密匙”可以存储在“机器级”(Machine-level)和“用户级”(user-level).机器级密匙在这种情况下很理想:每个web应用程序都运行在自己专有的服务器上,或某个服务器上的多个应用程序共享同样的加密信息.而用户级密匙在共享服务器环境里是比较理想的安全选择.此时,同服务器上的其它程序不能对你加密的配置信息进行解密.

本教程的示例将使用DPAPI provider和机器级密匙.具体来说,我们将对Web.config文件里的<connectionStrings>节点进行加密.对RSA provider以及用户级密匙的更多信息请参考本文结束部分的外延阅读资料.

注意:
RSAProtectedConfigurationProvider 和DPAPIProtectedConfigurationProvider providers在machine.config文件里被分别组册成RsaProtectedConfigurationProvider 和DataProtectionConfigurationProvider。当我们对配置信息进行加密或解密时我们需要提供相应的provider名称(即RsaProtectedConfigurationProvider 或 DataProtectionConfigurationProvider);而不是实际的类型名(即RSAProtectedConfigurationProvider 和 DPAPIProtectedConfigurationProvider). 你可以在$WINDOWS$/Microsoft.NET/Framework/version/CONFIG文件夹里找到machine.config文件.


第二步:通过编程加密和解密配置节点

使用某个provider,我们只需要很少的几行代码就可以对某个配置节点加密或解密.这些代码仅仅需要引用相应的配置节点,调用其ProtectSection 或 UnprotectSection方法,再调用Save方法来执行.另外,.NET Framework包含了一个很有用的命令行功能来进行加密和解密,我们将在第3步考察该功能.

为了便于演示,我们需要创建一个包含按钮的ASP.NET页面,以便于对Web.config文件的<connectionStrings>节点进行加密和解密.

打开AdvancedDAL文件夹里的EncryptingConfigSections.aspx页面,拖一个TextBox控件到页面,设其ID为WebConfigContents;TextMode属性为MultiLine;Width和Rows属性分别为95% 和 15.该TextBox控件用于显示Web.config文件的内容,以查看其内容是否已经加密了.当然,在现实程序里,我们不可能将Web.config文件的内容显示出来.


在该TextBox控件下面添加2个Button控件,ID分别为EncryptConnStrings 和 DecryptConnStrings;设其Text属性为“Encrypt Connection Strings” 和 “Decrypt Connection Strings”.

此时你的界面看起来和下面的差不多:

图2:在页面上添加一个TextBox控件和2个Button控件

接下来,在页面初次登录时我们需要在ID为WebConfigContents的TextBox控件里将Web.config文件的内容显示出来。在页面的后台类里添加如下的代码,该代码添加了一个名为DisplayWebConfig的方法,在Page_Load事件处理器里,当Page.IsPostBack 为 false时便调用该方法:

protected void Page_Load(object sender, EventArgs e)
{
    // On the first page visit, call DisplayWebConfig method
    if (!Page.IsPostBack)
        DisplayWebConfig();
}

private void DisplayWebConfig()
{
    // Reads in the contents of Web.config and displays them in the TextBox
    StreamReader webConfigStream =
        File.OpenText(Path.Combine(Request.PhysicalApplicationPath, "Web.config"));
    string configContents = webConfigStream.ReadToEnd();
    webConfigStream.Close();

    WebConfigContents.Text = configContents;
}


该DisplayWebConfig方法调用File class类来打开应用程序的Web.config文件;调用StreamReader class类将内容读入一个字符串;再调用Path class类来获取Web.config文件的物理地址.这3个类都位于System.IO命名空间. 所以我们应该在后台类的顶部添加using System.IO声明,又或者在这些类的前面添加“System.IO.”前缀.

接下来,我们需要为这2个按钮的Click事件添加事件处理器,在一个DPAPI provider里使用机器级密匙对<connectionStrings>节点进行加密和解密.在设计器里,双击这2个按钮以添加Click事件处理器,添加如下代码:

protected void EncryptConnStrings_Click(object sender, EventArgs e)
{
    // Get configuration information about Web.config
    Configuration config =
        WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

    // Let's work with the <connectionStrings> section
    ConfigurationSection connectionStrings = config.GetSection("connectionStrings");
    if (connectionStrings != null)
        // Only encrypt the section if it is not already protected
        if (!connectionStrings.SectionInformation.IsProtected)
        {
            // Encrypt the <connectionStrings> section using the
            // DataProtectionConfigurationProvider provider
            connectionStrings.SectionInformation.ProtectSection(
                "DataProtectionConfigurationProvider");
            config.Save();
           
            // Refresh the Web.config display
            DisplayWebConfig();
        }
}

protected void DecryptConnStrings_Click(object sender, EventArgs e)
{
    // Get configuration information about Web.config
    Configuration config =
        WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

    // Let's work with the <connectionStrings> section
    ConfigurationSection connectionStrings =
        config.GetSection("connectionStrings");
    if (connectionStrings != null)
        // Only decrypt the section if it is protected
        if (connectionStrings.SectionInformation.IsProtected)
        {
            // Decrypt the <connectionStrings> section
            connectionStrings.SectionInformation.UnprotectSection();
            config.Save();

            // Refresh the Web.config display
            DisplayWebConfig();
        }
}


这2个按钮的事件处理器的代码几乎是一样的.它们一开始都通过WebConfigurationManager class类的OpenWebConfiguration方法获取当前应用程序的Web.config文件的信息. 该方法根据指定的有效路径返回web配置文件。接下来,再通过Configuration class类的GetSection(sectionName)方法访问Web.config文件的<connectionStrings>节点.该方法返回一个ConfigurationSection对象. 

 该ConfigurationSection对象包含了一个SectionInformation属性,用来阐述加密节点的其它相关信息. 就像上面的代码显示的那样,我们通过查看SectionInformation的IsProtected属性来判断是否对配置节点进行了加密.此外,还可以通过SectionInformation的ProtectSection(provider) 和 UnprotectSection方法对节点进行加密或解密.

ProtectSection(provider)方法有一个字符串类型的输入参数,该参数指定了用来加密的protected configuration provider的名称。在EncryptConnString按钮的事件处理器里,我们将“DataProtectionConfigurationProvider”传递给ProtectSection(provider)方法,因此指明了用到的是DPAPI provider.而UnprotectSection方法可以确定加密时用到的provider,因此不需要任何的输入参数.

调用ProtectSection(provider) 或 UnprotectSection方法后,我还必须调用Configuration对象的Save method方法来进行具体的操作. 一旦完成加密或解密并保存后,我们调用DisplayWebConfig方法将更新后的Web.config文件的内容上传到TextBox控件.

键入上述代码后,在浏览器里测试EncryptingConfigSections.aspx页面,最开始你将看到页面将Web.config文件的<connectionStrings>节点的内容以纯文本的形式展示出来.

图3:显示<connectionStrings>节点的内容

现在,点击“Encrypt Connection Strings”按钮,如果“请求确认”(request validation)处于激活状态的话,回传页面时将抛出一个HttpRequestValidationException异常,显示一个消息:“A potentially dangerous Request.Form value was detected from the client.”。这个Request validation,在ASP.NET 2.0里默认为处于激活状态,禁止服务器接受含有未编码的HTML的内容,它被设计来保护服务器免受注入式脚本的攻击.可以从页面或应用程序来禁止该功能.我们在该页禁用它,在页面声明代码的顶部的的@Page标记里ValidateRequest设置为false,如下:

<%@ Page ValidateRequest="False" ... %>

在禁用该功能后,再次点击“Encrypt Connection Strings”按钮,页面回传后就可以访问配置文件了,并用DPAPI provider对<connectionStrings>节点进行加密. TextBox控件然后将Web.config文件更新后的内容显示出来,如图4所示,<connectionStrings>节点的信息现在已经被加密了.


图4:点击“Encrypt Connection Strings”按钮对<connectionString>节点进行加密

在加密前,我暂时地将<CipherData>元素里的内容转移了:

<connectionStrings
    configProtectionProvider="DataProtectionConfigurationProvider">
  <EncryptedData>
    <CipherData>
      <CipherValue>AQAAANCMnd8BFdERjHoAwE/...zChw==</CipherValue>
    </CipherData>
  </EncryptedData>
</connectionStrings>

注意:
<connectionStrings>元素指定了用来加密的provider(即DataProtectionConfigurationProvider).当点击“Decrypt Connection Strings”按钮时UnprotectSection方法将会用到该信息.对于加密的连接字符串,系统可以自动的对其解密.简而言之,我们不需要再对加密的<connectionString>节点添加任何其它的代码。我们来做个验证,打开以前的教程,比如(~/BasicReporting/SimpleDisplay.aspx页面),如图5所示,页面像我们期望的那样工作正常,这就表明了经过加密的连接字符串被ASP.NET页面自动解密了.

图5:数据访问层自动解密连接字符串信息

为将加密的<connectionStrings>节点恢复到纯文本样式,点击“Decrypt Connection Strings”按钮。页面回传后,你将看到Web.config文件里的连接字符串恢复到纯文本样式.此时,屏幕开起来像是最初登录的样子(见图3)

 

第三步:用aspnet_regiis.exe对配置节点进行加密

.NET Framework包含了很多的命令行工具,可以在$WINDOWS$/Microsoft.NET/Framework/version/ folder文件夹里找到这些工具.以第61章《Using SQL Cache Dependencies》为例,我们用aspnet_regsql.exe命令行工具为SQL缓存依赖添加里必要的体系结构.该文件夹里的另一个有用的工具是ASP.NET IIS Registration tool (aspnet_regiis.exe). 就像其名字暗示的那样,这个ASP.NET IIS Registration工具主要用来在微软专业Web server,IIS上注册ASP.NET 2.0应用程序.

除了其与IIS相关的属性外,该ASP.NET IIS Registration工具也可以对Web.config文件的配置节点进行加密和解密. 下面的是使用aspnet_regiis.exe命令行工具对配置节点加密的常规代码:

aspnet_regiis.exe -pef section physical_directory -prov provider

其中section是要加密的配置节点(比如“connectionStrings”);physical_directory 为web应用程序根节点的完整物理路径;provider是用到的protected configuration provider的名称(比如“DataProtectionConfigurationProvider”). 另外,如果你将web应用程序在IIS里进行了注册了的话,你就可以用相当路径来代替绝对路径:

aspnet_regiis.exe -pe section -app virtual_directory -prov provider

下面为使用aspnet_regiis.exe的例子,它用DPAPI provider,机器级密匙,对<connectionStrings>节点进行加密:

aspnet_regiis.exe -pef
"connectionStrings" "C:/Websites/ASPNET_Data_Tutorial_73_CS"
-prov "DataProtectionConfigurationProvider"


类似的,该aspnet_regiis.exe命令行工具也可以用来解密配置节点,不过我们要将-pef替换成-pdf或-pd。当然,解密时不需要指定provider名称.

aspnet_regiis.exe -pdf section physical_directory
  -- or --
aspnet_regiis.exe -pd section -app virtual_directory

注意:
由于我们使用的是DPAPI provider,它使用的密匙是又电脑指定的,所以你必须在存储web页面的同一台电脑上运行aspnet_regiis.exe工具. 比如,你在本地电脑上运行这个命令行,然后又将加了密的连接字符串上载到另一个服务器上,该服务器就无法对其进行解密,因为加密的密匙是在本地电脑上指定的.如果是使用RSA provider的话就不存在这种局限性,因为RSA provider可以将密匙(RSA keys)传递给另一台电脑.


理解Database Authentication Options

在任何应用程序向Microsoft SQL Server数据库发出SELECT,INSERT,UPDATE,或DELETE请求之前,数据库首先要确定请求者的身份.该过程可分为2种验证模式:authentication 和 SQL Server provides:

.Windows Authentication:在Visual Studio 2005的ASP.NET Development Server里运行一个ASP.NET应用程序时,ASP.NET应用程序假定身份(identity)为当前登录用户。而如果运行在Microsoft Internet Information Server (IIS)上的话,ASP.NET应用程序假定身份(identity)为domainName/MachineName or domainName/NETWORK SERVICE,,虽然这些都可以用户定制.

.SQL Authentication:验证的时候需要提供用户ID和password,使用SQL authentication的话,可以由连接字符串来提供ID和password.

一般使用Windows authentication模式,因为其更安全.在Windows authentication模式下,连接字符串不需要用户名和密码,并且如果web服务器和数据库服务器分属不同的电脑的话,(credentials)认证在网络间传输时并不以纯文本格式传输.而如果是SQL authentication模式的话,将对连接字符串进行硬编码,且认证在web服务器和数据库服务器之间以纯文本格式进行传输.

本教程使用的是Windows authentication.我们可以通过连接字符串来查看到底使用的是哪种认证。本教程的Web.config文件的连接字符串如下:

Data Source=./SQLEXPRESS; AttachDbFilename=|DataDirectory|/NORTHWND.MDF; Integrated Security=True; User Instance=True

术语“Integrated Security=True”,以及缺少用户名和密码都表明我们使用的是Windows authentication模式。不过在一些连接字符串里用术语“Trusted Connection=Yes” 或 “Integrated Security=SSPI”来替换“Integrated Security=True”, 不过它们都表明使用的是Windows authentication.

下面的代码显示使用的是SQL authentication:

Server=serverName; Database=Northwind; uid=userID; pwd=password

假想某个攻击者可以查看你的应用程序的Web.config文件。如果你使用的是SQL authentication模式通过Internet连接到数据库,攻击者可以利用连接字符串通过SQL Management Studio或他自己网站上的ASP.NET页面连接到你的数据库.为降低风险,我们需要对Web.config文件的连接字符串进行加密.

注意:
关于SQL Server里不同认证模式的更多信息应参阅文章《Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication》(http://msdn2.microsoft.com/en-us/library/aa302392.aspx);关于Windows 和 SQL authentication不同之处的更多示例,应参阅ConnectionStrings.com网站.


结语:

默认情况下,ASP.NET应用程序里的所有以.config为后缀的文件都不能通过浏览器访问.这是因为这些文件可能包含了一些敏感信息,比如:数据库连接字符串、用户名和密码等。 .NET 2.0包含的保护配置系统可以通过对指定的配置节点进行加密来加以保护.有2种内置的protected configuration providers:一个使用RSA运算法则,而另一个使用Windows Data Protection API (DPAPI).

本文考察了使用DPAPI provider来对配置信息进行加密和解密.我们可以通过编程的方式,就像在第2步探讨的那样;也可以通过使用aspnet_regiis.exe命令行工具,就像在第3步探讨的那样。关于使用RSA provider及用户级密匙的更多信息请参考本文的外延阅读.

祝编程快乐!

如何对web.config进行加密和解密     在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址或者数据库发生变更,那么我们就不得不修改源程序并重新将其编译。更好的解决方法是将数据库连接字符串写入到web.config配置文件中,可问题是将连接字符串写入到web.config文件中之后,任何人都能打开看到所连接的数据库名和密码,又会带来安全隐患,因此为了保证数据 阅读详情

相关推荐

【Creo】关于Creo一换网络就报错许可证丢失问题解决方案

依照我的个人理解,Creo只要一更换网络,则其许可证里面的网卡参数和现在的网络就对不上了,所以就会出现报错,并且有可能是报错代码(-9),提示许可证激活有问题。

weixin_52002180的博客 6036

Scott Mitchell 的ASP.NET 2.0数据教程之73:保护连接字符串及其它设置信息

  本文英文原版及代码下载:http://www.asp.net/learn/data-access/tutorial-73-cs.aspxScott Mitchell 的ASP.NET 2.0数据教程之73:保护连接字符串及其它设置信息导言:ASP.NET应用程序的设置信息通常都存储在一个名为Web.config的XML文件里。在教程的前面部分我们已经好几次修改过Web.config

heker2007的专栏 2673

微信DAT图片解密全攻略:一键转换JPG/PNG/GIF

本文详细解析了微信电脑版中DAT图片的加密原理与存储路径,并提供了从定位文件到使用专业工具进行一键解密的完整操作指南。通过简单的步骤,用户可将加密的DAT文件无损还原为JPG、PNG或GIF格式,有效解决无法直接查看聊天图片的难题,同时兼顾了隐私清理与磁盘空间管理。

hill8的博客 1363

C# App.config和Web.config加密

使用ASP.NET提供的命令工具aspnet_regiis来创建加密命令。

u012949335的专栏 1921

聚类分析(超全超详细版)

聚类分析是一种典型的无监督学习, 用于对未知类别的样本进行划分,将它们按照一定的规则划分成若干个类族,把相似(距高相近)的样本聚在同一个类簇中, 把不相似的样本分为不同类簇,从而揭示样本之间内在的性质以及相互之间的联系规律 聚类算法在银行、零售、保险、医学、军事等诸多领域有着广泛的应用 聚类分析基础 聚类分析的概念 聚类分析是根据在数据中发现的描述对象及其关系的信息,将数据对象分组。目的是...

Gfqwy2021 22万+

【拯救C盘】一文搞懂Windows修改Anaconda默认的虚拟环境存放路径及其原理

Anaconda创建的虚拟环境可能会默认保存在C盘,但C盘的存储空间很宝贵,由于每个虚拟环境的大小可能达到n个GB,稍不注意就会遇到C盘红色警告。因此有必要做点什么来拯救被虚拟环境占用的大部分空间!!!

Roach007的博客 3万+

对web.config进行加密

更好的解决方法是将数据库连接字符串写入到web.config配置文件中,可问题是将连接字符串写入到web.config文件中之后,任何人都能打开看到所连接的数据库名和密码,又会带来安全隐患,因此为了保证数据库的安全性,我们可以通过使用微软IDE自带的命令aspnet_regiis.exe将配置文件web.config中指定的标签进行加密,如果以后想查看加密后的连接字符串,我们还可以使用aspnet_regiis.exe将加密后的字符串进行解密。在加密过程中,使用了一个基于本机的密钥。

卟靠谱 830

通讯软件013——分分钟学会Kepware OPC AE Server仿真配置

本文介绍如何使用Kepware软件仿真OPC AE Server配置。

zhouwl72的博客 2226

对web.config的ConnectionString加密

本文参考了wayshan的博客,原文地址:http://www.cnblogs.com/wayshan/archive/2012/04/09/web_config.html web.config配置文件中,有一些敏感数据希望被保护起来,例如数据库的连接串ConnectionString,默认情况下是明文显示的,例如: 1 <appSettings...

weixin_30511107的博客 237

射频电源与等离子体技术:原理、应用与优化策略

射频电源(RF Power Supply)作为高频交流电信号发生器,在半导体制造和材料处理中扮演关键角色。其核心原理是通过高频电场激发气体产生等离子体,这种电离气体包含电子、离子和活性基团,具有独特的非平衡特性。技术价值体现在等离子体密度和电子温度的可控性上,使得在刻蚀和沉积工艺中能精确调控材料处理效果。应用场景广泛覆盖PECVD、深槽刻蚀等工业流程,其中13.56MHz ISM频段因其全球合规性成为行业标准。优化策略包括双频驱动和阻抗匹配网络设计,可显著提升工艺均匀性和设备效率。

weixin_29163797的博客 389

【数据集】中国2003年至2022年全天空每日气温数据集

中国2003年至2022年全天空每日气温数据集

WW、forever的博客 602

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

               对Encrypting Connection Strings in web.config file的介绍                                                    翻译:兴百放 Time :2007-6-7  出处:http://www.beansoftware.com/ASP.NET-Tutorials/Encryptin

兴百放的博客 3215

PID控制算法实践应用(一):PID算法的离散化

由于计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此,连续PID控制算法不能直接使用,需要采用离散化方法。

m0_72676510的博客 2601

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

连接参考:http://wenku.baidu.com/link?url=nwGug8wxz143A4pvBE_kN6vMU7aF3ojwCKJOyN-TQleZ07iAYrjx_FnFVDOtZAF8gbJ8UIwZXoPMWk7J0iZNd3IP_niggQGMLr2A6UgTcC3 旧版本的ASP.NET将连接字符串直接保存在ASPX页面中。回想一下,连接字符串包 含了数据服...

ditai8778的博客 343

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

<br /><br />旧版本的ASP.NET将连接字符串直接保存在ASPX页面中。回想一下,连接字符串包含了数据服务器名称和用户账户等信息,有时候甚至还包含了密码。在代码中包含以上信息是非常不好的习惯,原因有二。首先,这些信息可以被设计小组中的每一位程序人员看到(但是站点访问者不能在浏览器上看到)。第二,在整个Web站点中的每一个拥有该连接的地方,都必须进行维护和更新。更新密码成为了一项繁重的工作。<br />ASP.NET 2.0提供了一个选项可以将连接字符串移动至Web.config文件的连接区域,给

587

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

加密web.config中的信息

我们都知道web.config可以保存连接字符串,我们在程序中也都是这么做的,web.config是XML,所以它有清晰的结构,是我们很容易可以读懂它,但是这也出现一个问题,我们数据库完全暴露给浏览该文件的人,这是我们所不希望的。我们可以使用一个简单有效的加密算法来加密这段连接字符,使直接浏览该文件的人不能清楚地看到这些信息。       我们一般以下面的形式保存连接字符串:           

Aone --- 无限的未知 634

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

web.config连接串问题

作者tag:windows/.net csharper 优快云 推荐tag:加密 数据库 连接 信息  function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);voi

bczy的专栏 610

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

摘自:博客园 介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, Ajax, JavaScript等的文章。大多数情况下,我都把数据库的连接字符串放在了web.config中。其中包含许多敏感信息,包括连接数据库的用户名密码等。然而我们在web....

weixin_33716154的博客 1423

web.config 中connectionStrings连接字符串加密、解密问题

注意:是对虚拟目录下还是物理目录下的文件加密 加密网站中的配置信息,我们不需要写任何代码,也不需要修改任何代码,只需要使用 aspnet_regiis 工具修改配置文件即可. 比如我们有下面一个配置文件需要加密: <configuration> <connectionStrings> <add name="SqlServices" connection...

carcarrot的博客 690

对web.config的数据库连接字符串进行加密

我们如果想对web.config的数据库连接字符串进行加密的话,那么这里提供了两个方法。 方法一、     使用“DataProtectionConfigurationProvider”形式加密,创建test.aspx文件,代码如下: 需要添加引用 using System.Web.Configuration; using System.IO; //加密 protected voi

『逍遥』的专栏 908

oracle 连接字符串web.config,关于ASP.NET Web API:C#Web API连接字符串web.config无法读取...

这是我在这里的第一个问题,所以请保持谦虚(并就我如何改进我的问题提供建设性的批评):)我正在尝试连接到我的Web API项目中的Oracle数据库。该项目具有一个app.config和一个web.config。我不知道为什么要同时拥有这两者,但是在设置(带有Web API的空asp.net)项目时会附带它。这是我的代码,用于连接数据库并获取连接字符串,这也是我获取NullReferenceExce...

weixin_30260057的博客 432

Web.config里连接字符串存储加密

        asp.net里面web.config文件中的连接字符串是以明码形式保存的,通常存储内容包括数据库服务器名称、数据库名称、账号、甚至包括密码。这种做法的缺点显而易见:开发团队中所有人员都有机会看到这些敏感信息。        为了解决这个问题,ASP.NET 2.0支持一种将连接字符串等敏感信息加密存储于是Web.config文件中的方法.进入.net 的SDK命令提示符,使用

1979

web.config/app.config敏感数据加/解密的二种方法

一 建立虚拟目录  http://localhost/EncryptWebConfig,并添加web.config,其中包含数据库连接字符串:                     二  运行 aspnet_regiis -pe "connectionString

leestar54的专栏 6557
上一篇: c#中 uint--byte[]--char[]--string相互转换汇总
下一篇: C#实现 获取指定字节长度 中英文混合字符串 的方法
msikruby
博客等级 码龄19年 11粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值