Enterprise Library 中加密数据库连接字符串
看了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 中加密数据库连接字符串相关推荐
- php字符串加密解密源码,PHP中加密解密字符串函数源代码
PHP中加密解密字符串函数源代码: /** *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ / ...
- 利用Enterprise Library中的DAAB构造的数据库访问架构
初学Enterprise Library中的DAAB部分,为了练练,一边学一边参照petshop 4.0写了一个数据库访问的架构,现把代码放上来,希望各位多指点,也可以使自己多学点 /Files/li ...
- ORM读取web.config中的数据库连接字符串
使用VS2008自带LINQ TO SQL生成的ORM默认连接字符串内置在类中,一旦数据库连接改动需要重新编译ORM. 其实可以通过一个简单的方法实现动态读取. 一.因为要读取WEB配置文件,所以第一 ...
- web.config中connectionStrings数据库连接字符串介绍
web.config中connectionStrings中connectionString各属性字段的介绍 Application Name 应用程序的名称,如果不提供应用程序名称,默认为" ...
- ASP在 Web.config 中创建数据库连接字符串
在 Web.config 中创建数据库连接串 我们需要在网站的配置文件中增加一些行,以便 Entity Framework 知道如何连接到我们的数据库,双击Web.config 文件. 卷到文件的最后 ...
- Access2007及以后的版本中的数据库连接字符串
ACE OLEDB 12.0 标准 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/myFolder/myAccess2007file.accdb ...
- WinForm中配置数据库连接字符串
以前做Winform程序,居然专门做一个界面来配置连接字符串.今天无意中发现:竟然可以直接调用VS.net2005中的配置界面来处理. 使用方法也非常简单: 引用C:\Program Files\Mi ...
- Enterprise Library系列文章回顾与总结
Enterprise Library系列文章回顾与总结 自Enterprise Library 1.1 推出以来,Terry写了一系列的关于Enterprise Library的文章,其中得到了很多朋 ...
- Enterprise Library 2.0 Hands On Lab 翻译(3):数据访问程序块(三)
练习3:加密数据库连接信息 通过该练习,你将学会如何去加密数据库连接信息. 第一步 打开DataEx3.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enter ...
最新文章
- Android项目驱动式开发教程 第2版,《Android项目驱动式开发教程》第一章开发入门.ppt...
- jrtplib 分包处理
- Django中多种重定向方法使用
- 8.2.2继承 第8章 面向对象编程简介
- 345. 反转字符串中的元音字母
- ffmpeg分析系列
- python查询缺失值所在位置_Python Pandas找到缺失值的位置方法
- Spring-tx-Propagation枚举类
- TensorFlow入门篇(三):MNIST数据集简易分类
- 统计学习方法读书笔记6-K近邻算法及代码实现
- 算法设计与分析基础——假币问题(三分法)
- Arcgis 区位图绘制
- 【装机】关于WINRE/ESP/LRS_ESP/MSR/PBR这些分区
- 魔方机器人之SVM算法识别魔方颜色
- ubuntu系统下运行可执行文件 (application/x-executable)
- 宏碁4750 Ubuntu16.04下安装NVIDIA 390显卡
- Vue.js 中created方法的作用【学习】
- Scratch软件编程等级考试三级——20210320
- java图片放大_【图像处理-图像无损放大】JavaAPI示例代码
- OpenSSL 生成证书