现在的位置: 首页 > 综合 > 正文

关于IBatisNet的配置文件中数据库连接字符串加密处理

2012年04月07日 ⁄ 综合 ⁄ 共 3757字 ⁄ 字号 评论关闭

       我们通常在IBatisNet配置文件 properties.config 加入数据库连接字符串。数据库连接字符串直接放在里面,没有被加密,很不安全。如果我们把 properties.config 文件作为资源嵌入到程序集,似乎可用解决安全问题,但是又出现新的问题,那就是部署。因为用户部署时,是需要重新设置数据库地址,名称,用户名,密码等值的。

        解决办法:
        数据库连接字符串还是放在原来的程序的配置文件中,比如 WebForms 的web.config中, WinForms的 App.config中,这样我们可以以使用企业库管理工具来加密这个配置文件。

       然后,通过编程的方式加入数据库连接字符串。       

DomSqlMapBuilder builder = new DomSqlMapBuilder();
NameValueCollection prop 
= new NameValueCollection();
//DatabaseHelper.GetConnectionString()是用来从原来的配置文件中获得数据库连接字符串
prop.Add("connectionString", DatabaseHelper.GetConnectionString());
builder.Properties 
= prop;
ISqlMapper sqlMapper 
= builder.Configure();

        由于我们自己通过编程的方式提供了 ISqlMapper ,所以我们需要考虑性能的问题.SqlMap是线程安全的,所以我们可以考虑使用单件模式来提供 ISqlMapper .

        整个提供 ISqlMapper 的类如下:

//-----------------------------------------------------------------------------------------
// 模块编号:
// 文件名: SqlMapperHelper.cs
// 描述: SqlMapperHelper 类
// 作者:ChenJie 
// 编写日期:2007-5-26
// Copyright 2007
//-----------------------------------------------------------------------------------------
using System;
using IBatisNet.DataMapper;
using IBatisNet.DataMapper.Configuration;
using System.Collections.Specialized;

namespace Novelty.CustomSystem.IBatisNet
{
    
/// <summary>
    
/// 提供 ISqlMapper 对象,属于单件模式(Singleton Pattern)
    
/// </summary>

    public class SqlMapperHelper
    
{
        
私有变量

         
构造函数

        
嵌套类

        
属性

        
公有方法

        
私有方法

        
对外属性

    }

}

 

 

 

抱歉!评论已关闭.