怎样把数据库连接字符串存入注册表中

发表于:2012-1-13 10:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  数据库的连接字符串是用数据库开发所必须的信息,我们通过连接字符串连接数据库,并进行各种数据库操作。本文提供的是把数据库连接信息存储到注册表中的方案。也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问权限很高,一般远程服务在没有得到管理员账号的情况下是没有权限来对注册表进行操作的,那么用来连接数据库的账户信息便安全许多。

  一、在注册表中建立相应的键及值

  有三种方法可以在注册表中添加我们需要的信息:

  1、纯手工的方法:开始->运行->Regedit,然后在相应的位置新建所需要的键值。

  2、运行一个注册表注册程序:

  1. Windows Registry Editor Version 5.00  
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\TownSite]  
  3. "Town"="server=localhost;database=Town;User Id=sa;Pwd=pass"

  将上面的代码保存成一个.Reg文件,然后双击运行便可以在相应的位置添加相应的信息。

  3、程序实现(C#):

  1. RegistryKey regKey = Registry.LocalMachine.CreateSubKey("SOFTWARE\\TownSite");  
  2. regKey.SetValue(dbName,"server=Hi4-kelvin-yu;database=Test;User ID=sa;Pwd=pass");

  说明:C#有对注册表进行处理的类和方法,首先要引入命名空间Microsoft.Win32 ,CreateSubKey方法会自动检测有没有相应的键值,如果没有则会创建,如果有则返回表示该键的RegistryKey的实例,如果可以确定有键值的话,也可以用OpenSubKey打开。dbName是值名,通过变量传过来。

  二、读取键值

  读取键值非常简单:

  1. RegistryKey regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\TownSite", false);  
  2. connectionString = regKey.GetValue(dbName).ToString().Trim();

  说明:从相应的键处读取值信息,然后得到数据库连接字符串赋给一变量或者属性,然后就可以进行数据库连接了。

  三、一点说明

  如果采用程序的方式创建注册表的键值,就要确保aspnet用户有对注册表的操作权限,方法如下:“开始->运行”,输入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,选择“安全->权限->添加”,然后找到本机的“AspNet”用户,加进来并且给读取权限就好了,加进来后目录中会多一个“aspnet_wp account”。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号