看了SHY520写的关于Data Access Application Block的文章,写得不错,忽略了一点就是如何去加密数据库连接字符串,这儿我简单的介绍一下。我们知道,在Enterprise Library1.1中加密连接字符串,需要依赖于Cryptography Application Block。.NET Framework2.0中已经内置了这项功能,通过Configuration命名空间下的一些类来完成,支持两种类型的加密:

DPAPIProtectedConfigurationProvider:使用Windows Data Protection API (DPAPI)

RsaProtectedConfigurationProvider:使用RSA算法

下面来看一下具体的实现方法,假设已经有这样的一个配置文件:

<?xml version="1.0" encoding="utf-8"?>
 
<configuration>
 
  <configSections>
 
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
 
  </configSections>
 
  <dataConfiguration defaultDatabase="QuickStarts" />
 
  <connectionStrings>
 
    <add name="QuickStarts" connectionString="Database=EntLibQuickStarts;Server=RJ-097;Integrated Security=SSPI;"
 
      providerName="System.Data.SqlClient" />
 
  </connectionStrings>
 
</configuration>

.添加对System.Configuration.dll的引用

2.在Program.cs中引入命名空间

using System.Configuration;

3.编写相关的代码:

** <summary>
 
/// Author:TerryLee
 
/// From:http://terrylee.cnblogs.com
 
/// </summary>
 
static void EncryptConfiguration()
{   
 // 使用什么类型的加密
 
 string provider = "RsaProtectedConfigurationProvider";
 
    Configuration config = null;
 
    config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
 
 // 加密连接字符串
 
    ConfigurationSection section = config.ConnectionStrings;
 
 if ((section.SectionInformation.IsProtected == false) &&
 
        (section.ElementInformation.IsLocked == false))
 
 {
      section.SectionInformation.ProtectSection(provider);
 
        section.SectionInformation.ForceSave = true;
 
        config.Save(ConfigurationSaveMode.Full);
 
    }
}

该方法的调用放在程序的主程序的入口点:

[STAThread]

static void Main()
{
// Protect the Connection Strings

    EncryptConfiguration();

    Application.Run(new MainForm());

}

运行程序后,打开配置文件可以看到,连接字符串已经变成密文了。最后注意一点:加密的字符串在被加载到内存的时候解密。

转载于:https://www.cnblogs.com/sczw-maqing/p/3368680.html

Enterprise Library 中加密数据库连接字符串相关推荐

  1. php字符串加密解密源码,PHP中加密解密字符串函数源代码

    PHP中加密解密字符串函数源代码: /** *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ / ...

  2. 利用Enterprise Library中的DAAB构造的数据库访问架构

    初学Enterprise Library中的DAAB部分,为了练练,一边学一边参照petshop 4.0写了一个数据库访问的架构,现把代码放上来,希望各位多指点,也可以使自己多学点 /Files/li ...

  3. ORM读取web.config中的数据库连接字符串

    使用VS2008自带LINQ TO SQL生成的ORM默认连接字符串内置在类中,一旦数据库连接改动需要重新编译ORM. 其实可以通过一个简单的方法实现动态读取. 一.因为要读取WEB配置文件,所以第一 ...

  4. web.config中connectionStrings数据库连接字符串介绍

    web.config中connectionStrings中connectionString各属性字段的介绍 Application Name 应用程序的名称,如果不提供应用程序名称,默认为" ...

  5. ASP在 Web.config 中创建数据库连接字符串

    在 Web.config 中创建数据库连接串 我们需要在网站的配置文件中增加一些行,以便 Entity Framework 知道如何连接到我们的数据库,双击Web.config 文件. 卷到文件的最后 ...

  6. Access2007及以后的版本中的数据库连接字符串

    ACE OLEDB 12.0   标准 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/myFolder/myAccess2007file.accdb ...

  7. WinForm中配置数据库连接字符串

    以前做Winform程序,居然专门做一个界面来配置连接字符串.今天无意中发现:竟然可以直接调用VS.net2005中的配置界面来处理. 使用方法也非常简单: 引用C:\Program Files\Mi ...

  8. Enterprise Library系列文章回顾与总结

    Enterprise Library系列文章回顾与总结 自Enterprise Library 1.1 推出以来,Terry写了一系列的关于Enterprise Library的文章,其中得到了很多朋 ...

  9. Enterprise Library 2.0 Hands On Lab 翻译(3):数据访问程序块(三)

    练习3:加密数据库连接信息 通过该练习,你将学会如何去加密数据库连接信息. 第一步 打开DataEx3.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enter ...

最新文章

  1. Android项目驱动式开发教程 第2版,《Android项目驱动式开发教程》第一章开发入门.ppt...
  2. jrtplib 分包处理
  3. Django中多种重定向方法使用
  4. 8.2.2继承 第8章 面向对象编程简介
  5. 345. 反转字符串中的元音字母
  6. ffmpeg分析系列
  7. python查询缺失值所在位置_Python Pandas找到缺失值的位置方法
  8. Spring-tx-Propagation枚举类
  9. TensorFlow入门篇(三):MNIST数据集简易分类
  10. 统计学习方法读书笔记6-K近邻算法及代码实现
  11. 算法设计与分析基础——假币问题(三分法)
  12. Arcgis 区位图绘制
  13. 【装机】关于WINRE/ESP/LRS_ESP/MSR/PBR这些分区
  14. 魔方机器人之SVM算法识别魔方颜色
  15. ubuntu系统下运行可执行文件 (application/x-executable)
  16. 宏碁4750 Ubuntu16.04下安装NVIDIA 390显卡
  17. Vue.js 中created方法的作用【学习】
  18. Scratch软件编程等级考试三级——20210320
  19. java图片放大_【图像处理-图像无损放大】JavaAPI示例代码
  20. OpenSSL 生成证书

热门文章

  1. RN position定位及Android兼容处理
  2. springMVC异常拦截
  3. 数据库---主要约束操作讲解
  4. HTML的基本知识(三)
  5. 如果人生只剩最后一天,你想在这天干什么?
  6. 毕业三年,攒了多少钱?
  7. 有一年轻人总是抱怨自己命不好
  8. 接待顾客接待久了,发现大家讨价还价的方式基本三种
  9. 处理器性能越来越强,但电脑为什么没有手机流畅?
  10. rabbitmq 客户端golang实战