怎樣把數(shù)據(jù)庫(kù)連接字符串存入注冊(cè)表中
數(shù)據(jù)庫(kù)的連接字符串是用數(shù)據(jù)庫(kù)開發(fā)所必須的信息,我們通過連接字符串連接數(shù)據(jù)庫(kù),并進(jìn)行各種數(shù)據(jù)庫(kù)操作。本文提供的是把數(shù)據(jù)庫(kù)連接信息存儲(chǔ)到注冊(cè)表中的方案。也許你要問為什么要存到注冊(cè)表呢?我想最起碼的好處是安全,注冊(cè)表的訪問權(quán)限很高,一般遠(yuǎn)程服務(wù)在沒有得到管理員賬號(hào)的情況下是沒有權(quán)限來對(duì)注冊(cè)表進(jìn)行操作的,那么用來連接數(shù)據(jù)庫(kù)的賬戶信息便安全許多。
一、在注冊(cè)表中建立相應(yīng)的鍵及值:
有三種方法可以在注冊(cè)表中添加我們需要的信息:
1、純手工的方法:開始->運(yùn)行->Regedit,然后在相應(yīng)的位置新建所需要的鍵值。
2、運(yùn)行一個(gè)注冊(cè)表注冊(cè)程序:
- Windows Registry Editor Version 5.00
- [HKEY_LOCAL_MACHINE\SOFTWARE\TownSite]
- "Town"="server=localhost;database=Town;User Id=sa;Pwd=pass"
將上面的代碼保存成一個(gè).Reg文件,然后雙擊運(yùn)行便可以在相應(yīng)的位置添加相應(yīng)的信息。
3、程序?qū)崿F(xiàn)(C#):
- RegistryKey regKey = Registry.LocalMachine.CreateSubKey("SOFTWARE\\TownSite");
- regKey.SetValue(dbName,"server=Hi4-kelvin-yu;database=Test;User ID=sa;Pwd=pass");
說明:C#有對(duì)注冊(cè)表進(jìn)行處理的類和方法,首先要引入命名空間Microsoft.Win32 ,CreateSubKey方法會(huì)自動(dòng)檢測(cè)有沒有相應(yīng)的鍵值,如果沒有則會(huì)創(chuàng)建,如果有則返回表示該鍵的RegistryKey的實(shí)例,如果可以確定有鍵值的話,也可以用OpenSubKey打開。dbName是值名,通過變量傳過來。
二、讀取鍵值:
讀取鍵值非常簡(jiǎn)單:
- RegistryKey regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\TownSite", false);
- connectionString = regKey.GetValue(dbName).ToString().Trim();
說明:從相應(yīng)的鍵處讀取值信息,然后得到數(shù)據(jù)庫(kù)連接字符串賦給一變量或者屬性,然后就可以進(jìn)行數(shù)據(jù)庫(kù)連接了。
三、一點(diǎn)說明:
如果采用程序的方式創(chuàng)建注冊(cè)表的鍵值,就要確保aspnet用戶有對(duì)注冊(cè)表的操作權(quán)限,方法如下:“開始->運(yùn)行”,輸入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,選擇“安全->權(quán)限->添加”,然后找到本機(jī)的“AspNet”用戶,加進(jìn)來并且給讀取權(quán)限就好了,加進(jìn)來后目錄中會(huì)多一個(gè)“aspnet_wp account”。
【編輯推薦】