注冊(cè)表中存儲(chǔ)數(shù)據(jù)庫(kù)鏈接字符串
發(fā)表時(shí)間:2023-07-23 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]引言:數(shù)據(jù)庫(kù)的鏈接字符串是用數(shù)據(jù)庫(kù)開發(fā)所必須的信息,我們通過(guò)鏈接字符串連接數(shù)據(jù)庫(kù),并進(jìn)行各種數(shù)據(jù)庫(kù)操作。那么鏈接字符串的存到哪里好呢?這沒有什么定論,Asp系統(tǒng)開發(fā)中,一般存在一個(gè)conn.asp包...
引言:
數(shù)據(jù)庫(kù)的鏈接字符串是用數(shù)據(jù)庫(kù)開發(fā)所必須的信息,我們通過(guò)鏈接字符串連接數(shù)據(jù)庫(kù),并進(jìn)行各種數(shù)據(jù)庫(kù)操作。那么鏈接字符串的存到哪里好呢?這沒有什么定論,Asp系統(tǒng)開發(fā)中,一般存在一個(gè)conn.asp包含文件中或者如果又是COM,可能還會(huì)封閉到COM中,.Net開發(fā)中,大多數(shù)都選擇存在Web.conifg中,也有人存儲(chǔ)在另外一個(gè)單獨(dú)的文件中。那么本文提供的是把數(shù)據(jù)庫(kù)鏈接信息存儲(chǔ)到注冊(cè)表中的方案。也許你要問(wèn)為什么要存到注冊(cè)表呢?我想最起碼的好處是安全,注冊(cè)表的訪問(wèn)權(quán)限很高,一般遠(yuǎn)程服務(wù)在沒有得到管理員賬號(hào)的情況下是沒有權(quán)限來(lái)對(duì)注冊(cè)表進(jìn)行操作的,那么用來(lái)連接數(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");
說(shuō)明:C#有對(duì)注冊(cè)表進(jìn)行處理的類和方法,首先要引入命名空間Microsoft.Win32 ,CreateSubKey方法會(huì)自動(dòng)檢測(cè)有沒有相應(yīng)的鍵值,如果沒有則會(huì)創(chuàng)建,如果有則返回表示該鍵的RegistryKey的實(shí)例,如果可以確定有鍵值的話,也可以用OpenSubKey打開。dbName是值名,通過(guò)變量傳過(guò)來(lái)。
二、讀取鍵值:
讀取鍵值非常簡(jiǎn)單
RegistryKey regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\TownSite", false);
connectionString = regKey.GetValue(dbName).ToString().Trim();
說(shuō)明:從相應(yīng)的鍵處讀取值信息,然后得到數(shù)據(jù)庫(kù)鏈接字符串賦給一變量或者屬性,然后就可以進(jìn)行數(shù)據(jù)庫(kù)連接了。
三、一點(diǎn)說(shuō)明:
如果采用程序的方式創(chuàng)建注冊(cè)表的鍵值,就要確保aspnet用戶有對(duì)注冊(cè)表的操作權(quán)限,方法如下:“開始->運(yùn)行”,輸入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,選擇“安全->權(quán)限->添加”,然后找到本機(jī)的“AspNet”用戶,加進(jìn)來(lái)并且給讀取權(quán)限就好了,加進(jìn)來(lái)后目錄中會(huì)多一個(gè)“aspnet_wp account”