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

       我们通常在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
{
    
/// 
    
/// 提供 ISqlMapper 对象,属于单件模式(Singleton Pattern)
    
/// 

    public class SqlMapperHelper
    
{
        
私有变量

         
构造函数

        
嵌套类

        
属性

        
公有方法

        
私有方法

        
对外属性

    }

}

 

 

 

你可能感兴趣的:(ASP.NET)