使用配置文件保存数据库连接字符串

    去年学了五个关于数据库连接的例子,然后开始做系统。那个时候真的不懂什么叫数据库连接……直到今天好像真的明白究竟如何连了,恍然间意识到,本该大一学会的东西在大二学会,本该大二弄明白的事情大三才懂得。

 

    一直一直都在写数据库连接语句,事实上也连接成功了很多年(很多次的意思),直到开始考虑设计一个完善的数据访问策略,考虑到安全性如身份验证、授权,考虑到连接对性能和可伸缩性的影响等,才开始探索连接涉及到的种种。

 

    连接的作用是建立一个与后台数据库通信的通道,创建连接对象必须以特定的.net数据提供者为基础。ADO.net包含了很多代表数据访问模型中各种逻辑实体的对象,其中连接和事务两个对象最重要。实际上,围绕连接和事务的不确定因素很多,而且他们对应用整体的稳定性和效率有很大影响。

 

    说说连接字符串保存的问题。直接写在代码中的连接字符串具有最好的性能,但是这样很不灵活,一旦需要改变比如换数据库则必须重新打开修改程序。所以我们最好将连接字符串提取出来,这样的话就要考虑访问外部字符串的开销,其实呢这些开销是很小的,那么最重要的就是安全问题。我们都知道SQL注入,攻击者通过输入特定字符修改SQL语句,从而危害数据库,我们常常采用参数化查询的方式避免SQL注入。为防止攻击者修改、盗取连接字符串,我们可以将连接字符串保存为配置文件,UDL文件,windows注册表。

 

    现阶段我们主要使用配置文件的形式。

没有使用配置文件时这样定义:

       

        Dim connStr As String = "Data Source=localhost;Initial Catalog=NewCharge;Persist Security Info=True;User ID=sa;Password=123456"


    现在可以在项目中添加一个“应用程序配置文件”,命名为“app.config”。开始我没找到在哪里添加,后来才知道必须在UI层创建,因为软件是在UI层读取的,创建在其他层软件是找不到这个配置文件的!

配置文件内容如下:

 

<configuration>
	<appSettings >
		<add key ="connStr" value ="Data Source=localhost;Initial Catalog=NewCharge;Persist Security Info=True;User ID=sa;Password=123456"/>
	</appSettings>
	<system.diagnostics >
		<sources>
			<!-- 本节定义My.Application.Log的登录配置-->
		</sources>
	</system.diagnostics>
</configuration>

 

DAL层中,读取配置文件的代码就改成了

 

Dim connstr As String = System.Configuration.ConfigurationManager.AppSettings("connStr")
        conn = New SqlClient.SqlConnection(connstr)


以后再需要进行数据库访问链接字符串的修改,直接记事本打开config修改就哦了。这也很好的体现了开闭原则,对修改关闭。.NET框架配置文件以纯文本的形式部署,访问方便。但以明文密码形式保存还是很不安全的。windows注册表是最安全的存储场所,它是保存关键信息的系统知识库,通过加密可以达到较高的安全性,不过在部署上会有些麻烦。


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值