国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

數據庫連接字符串的處理方法!加密解密連接字符串

2024-07-21 02:29:34
字體:
來源:轉載
供稿:網友

商業源碼熱門下載www.html.org.cn

數據庫連接字符串的處理應該是一個項目里最基礎的東東了。(除非你的項目不涉及到數據庫。)

千萬不要小看他,處理不好也時會給你帶來不少的麻煩的。

連接字符串的內容在這里就不討論了,這里主要說一下他的存放位置和讀取方法。

我們要達到的目的:無論連接字符串如何變化,都不需要修改項目!

1.把連接字符串寫在程序里面。

一般的初級教程里會告訴你這么寫

vb.net

dim cn as new sqlclient.sqlconnection("user id=sa;password=sa;server=.;initial catalog=數據庫名稱")
c#

sqlclient.sqlconnection cn = new  sqlclient.sqlconnection("user id=sa;password=sa;server=.;initial catalog=數據庫名稱")
這么寫當然是沒有錯誤,但是當你寫了n個頁面后,有一半的頁面有這樣的代碼,這時候如果需要改變連接字符串(比如換用戶名和密碼)的話,那可就有得你改的了。想當初我就犯過這樣的錯誤,555555

2.放在web.config里面

這是比較流行的方法了。修改web.config文件,加入以下代碼

<appsettings>
<add value="user id=sa;password=sa;server=.;initial catalog=數據庫名稱" key="connstring" />
</appsettings>
然后在需要的地方調用就可以了。

vb.net

dim cnstring as string = system.configuration.configurationsettings.appsettings.item("connstring")
c#

string cnstring = system.configuration.configurationsettings.appsettings["connstring"]
這樣呢就不怕連接字符串再發生變化了。如果有變化的話,修改web.config就行了。

缺點就是web.congfig 是文本形式的,雖然不能下載,但還是缺乏安全感。

3.放在注冊表里面

 事先把連接字符串放在注冊表里面,用的時候到注冊表里面取值。

優點:安全性高。要想看到注冊表里的信息不是很容易的事情吧。

缺點:讀取注冊表需要一定的權限,但是一般的空間是不會開放這個權限的,因為開放了就意味著可以操作注冊表,這對服務器就太不安全了。

4.放在dll文件里面

寫一個單獨的類,再寫一個函數,調用這個函數返回連接字符串。然后把它編譯成dll文件備用

 

using system;
namespace jyk
{
    /**//// <summary>
    /// 取得連接字符串。
    /// </summary>
    public class connection
    {
        public static string connectionstring()
        {
            return "user id=sa;password=sa;server=.;initial catalog=數據庫名稱";
        }
    }
}
直接打開 dll文件 看到的是亂碼,要比寫在web.config有安全感。當然了通過反編譯軟件還是可以看到里面的代碼。

還有就是修改起來不太方便,需要重新編譯一下這個類。

5.綜合

以上個四種方法各有優越缺點,用哪一個都不是最好的,另外還有一個問題沒有提及 —— 加密連接字符串。

那么在一個項目里,怎么做才是最好的方法呢? —— 分層。

項目 <——類(dll文件) <——存放連接字符串的位置
a.對于項目來說呢只需要知道:當我要用連接字符串的時候我到dll里面(調用函數)讀取就行了,至于連接字符串具體的存放位置、是否加密等都不必關心。

b.類(dll文件),這個就很重要和靈活了。對于一般的項目可以這么寫

using system;
namespace jyk
{
    /**//// <summary>
    /// 取得連接字符串。
    /// </summary>
    public  class connection
    {
        public static string connectionstring()
        {
            return system.configuration.configurationsettings.appsettings["connstring"];
        }
    }
}
注意:上一個dll是把連接字符串直接寫在了類里面,而這回是到web.config里面讀取。

也許你會問:既然是到web.config里面讀取連接字符串,那為什么還要加上一個dll呢,是不是多此一舉呀?

這么做是為了達到這個目的:無論連接字符串如何變化,都不需要修改項目!

如果是直接讀取web.config,那么如果web.config里面放的是加密的連接字符串,那怎么處理?是不是要修改項目,或者是數據層。不要認為修改數據層就不是修改項目了。

如果加上了一個dll的話,那么只需要重新編譯一下這個dll就行了。項目可以保持不變。

c.連接字符串的存放位置

這個可以根據項目的要求來做,放在哪里都可以,只需要修改一下dll文件就行了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇坪县| 台安县| 阿克陶县| 湟源县| 星子县| 台湾省| 蓝山县| 浦江县| 合水县| 绥滨县| 常宁市| 化隆| 望谟县| 彭阳县| 石楼县| 黑龙江省| 黎川县| 大渡口区| 高雄县| 玛曲县| 左贡县| 揭东县| 黄浦区| 会泽县| 江孜县| 定陶县| 新闻| 长沙市| 临夏市| 宁城县| 高尔夫| 南开区| 衡阳县| 吴江市| 密山市| 合川市| 安顺市| 横山县| 永善县| 威远县| 聊城市|