注册表中存储数据库链接字符串的方法

数据库的链接字符串是用数据库开发所必须的信息,我们通过链接字符串连接数据库,并进行各种数据库操作。那么链接字符串的存到哪里好呢?这没有什么定论,Asp系统开发中,一般存在一个conn.asp包含文件中或者如果又是COM,可能还会封闭到COM中,.Net开发中,大多数都选择存在Web.conifg中,也有人存储在另外一个单独的文件中。那么本文提供的是把数据库链接信息存储到注册表中的方案。也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问权限很高,一般远程服务在没有得到管理员账号的情况下是没有权限来对注册表进行操作的,那么用来连接数据库的账户信息便安全许多。

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

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

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

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

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\TownSite]

"Town"="server=localhost;database=Town;User Id=sa;Pwd=pass"

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

3、程序实现(C#):

 RegistryKey regKey = Registry.LocalMachine.CreateSubKey("SOFTWARE\\TownSite");

regKey.SetValue(dbName,"server=Hi4-kelvin-yu;database=Test;User ID=sa;Pwd=pass");

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

 

二、读取键值:

读取键值非常简单

RegistryKey regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\TownSite", false);

connectionString = regKey.GetValue(dbName).ToString().Trim();

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

三、一点说明:

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

(0)

相关推荐

  • 完全卸载mysql(停止服务、卸载相关程序、删除注册表

    1. 停止服务MySQL 2. 卸载mysql相关的程序 3. 删除注册表(运行->regedit),machine->system->controlset001/controlset002/currentcontrolset->services->eventlog->applications->MySQL相关的文件 4. 删除MySQL安装目录和保存数据库数据的目录(C:\Documents and Settings\All Users.WINDOWS\Appl

  • 彻底删除SQL Server注册表的方法

    一般在卸载完数据库时,大家都希望能够将注册表信息完全删干净,下面就将教您彻底删除SQL Server注册表的方法,供您参考. 在卸载SQL Server开始--运行:输入regedit 进入注册表编辑器,进入之后执行下列操作: 1.彻底删除SQL Server: hkey_local_machine\software\Microsoft\MSSQLServer hkey_local_machine\software\Microsoft\Microsoft SQL Server hkey_curr

  • 注册表中存储数据库链接字符串的方法

    数据库的链接字符串是用数据库开发所必须的信息,我们通过链接字符串连接数据库,并进行各种数据库操作.那么链接字符串的存到哪里好呢?这没有什么定论,Asp系统开发中,一般存在一个conn.asp包含文件中或者如果又是COM,可能还会封闭到COM中,.Net开发中,大多数都选择存在Web.conifg中,也有人存储在另外一个单独的文件中.那么本文提供的是把数据库链接信息存储到注册表中的方案.也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问权限很高,一般远程服务在没有得到管理员账号的

  • mysql中向表中某字段追加字符串的方法

    Update `表名` SET title = CONCAT(title,'MV') where articleid=3487 and title not like '%v'

  • 用vbscript得到注册表中是否存在某个值

    问: 嗨,Scripting Guy!如何知道远程计算机上的注册表中是否存在某个值? -- AL 答: 嗨,AL.完全披露时间:尽管我们叫做 Scripting Guy,但这并不表示我们了解有关脚本编写的一切事情.这个问题就是一个很好的例证.第一次看到这个问题时,我们认为:"好吧,WMI 中显然有某种 If Exists 方法可以实现这个目的."但当我们发现其中并没有这样的方法时,知道我们有多吃惊么?事实上,我们找不到任何可以检查注册表中是否存在某个值的方法.我们甚至--惭愧!--去查

  • 用vbs列出注册表中 Run 项中的所有项目

    问: 您好,脚本专家!如何列出注册表中 Run 项中的所有项目? -- JW 答: 您好,JW.如何列出注册表中 Run 项中的所有项目?坦白地讲,我们不打算告诉您.真的很抱歉.不是因为我们不喜欢您,而是因为我们认为我们有一个更好的答案给您.(如果我们错了,那好,我们只能说这不会是第一次.)  由于您对 Run 项感兴趣,因此我们假定您真正想知道的是如何找出哪些程序被配置为在每次 Windows 启动时自动运行.您一定可以从 Run 项中读取到该信息,不要对此产生怀疑.实际上,您可以从 Run 

  • Powershell从注册表中查询默认MAPI客户端的例子

    当你通过类似Mailto:链接发送邮件,此时邮件客户端就是MAPI客户端.如果要找出到这个MAPI客户端在哪里,这里有个函数能从注册表中获得该信息. 复制代码 代码如下: functionGet-MAPIClient{    functionRemove-Argument    {      param      (        $CommandLine      ) $divider=''if ($CommandLine.StartsWith('"'))      {        $div

  • javascript判断并获取注册表中可信任站点的方法

    本文实例讲述了javascript判断并获取注册表中可信任站点的方法.分享给大家供大家参考.具体分析如下: 判断可信任站点,首先要在注册表中找到可信任站点在注册表中的位置,如下: (1)域名作为可信任站点在注册表中的位置: HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\ (2)IP作为可信任站点在注册表中的位置: HKCU\\Software\\Microsoft\\

  • C# 数据库链接字符串加密解密工具代码详解

    有些项目尤其是WinForm或者是WPF项目,针对一些工具形式的小项目,不想软件流出去之后,懂程序的的拿到手之后一看配置文件就知道了我们数据库的用户名和密码,如果外网能访问的话,那就麻烦大了.所以这里为了防止项目外泄之后这些信息不被别人看到,我们就需要对链接字符串或者其他重要信息进行加密,用的时候在解密. 思路:使用两个数对连接字符串进行加密,再用这两个数进行解密. <add key="ConfigString" value="4HsXBRNXTkeN0ZoKdEwFE

  • Spring Boot数据库链接池配置方法

    配置方法 基于当前的1.5.2.RELEASE的Spring Boot. 依照官方文档,如果增加了如下依赖的配置,或者类路径中存在spring-boot-starter-jdbc的jar,那么已默认启用了数据库链接池. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dep

  • 在 Laravel 6 中缓存数据库查询结果的方法

    在加快应用程序速度方面,缓存可能是最有效的.Laravel 预先安装了缓存驱动程序.因此你可以直接使用 Redis, Memcached 或者使用本地文件进行缓存操作.Laravel 附带了此功能. 这一次,我们将讨论直接从模型缓存 Eloquent 查询,从而使数据库缓存变的轻而易举. 这个包可以在 GitHub 找到,此文档将介绍该应用程序的所有要点.但是,这篇文章,我仅仅介绍缓存和清除缓存的知识. 安装 可以通过 Composer 安装 $ composer require rennokk

  • SQL Server中利用正则表达式替换字符串的方法

    建立正则替换函数,利用了OLE对象,以下是函数代码: --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION dbo.RegexReplace GO --开始创建正则替换函数 CREATE FUNCTION dbo.RegexReplace ( @string VARCHAR(MAX), --被替换的字符串 @pattern VARCHAR(255), --替换模板 @replacestr VARCHAR

随机推荐