簡體   English   中英

建立數據庫連接

[英]Establishing database connection

首先,請原諒我的英語。

我和我的小組正在計划申請。 該應用程序可以安裝到其他計算機上,並且應該連接到服務器,並且數據庫受密碼保護。

作為一名學生,我們總是以幼稚的方式做到這一點:

SqlConnection myConnection = new SqlConnection("user id=username;" + 
                                       "password=password;server=serverurl;" + 
                                       "database=database; " + 
                                       "connection timeout=30");

始終硬編碼。
如果我們更改數據庫密碼或更改服務器該怎么辦?
我們還必須更改代碼中的值,在PC中重新編譯並重新安裝該應用程序。 有動態的方式來做到這些嗎?

我們認為,在應用程序的首次運行中,將提示用戶輸入連接詳細信息,並將該數據保存到文件中,應用程序將在每次啟動時將其提取並將其用於數據庫連接,但是其中涉及密碼。

有任何建議,想法,概念,樣本等嗎? 如何以更專業的方式做到這一點? 請幫忙...謝謝。

您可以將數據庫設置存儲在app.config中

http://www.ezzylearning.com/tutorial.aspx?tid=8067328

Windows使您可以加密文件,以便只有以所有者身份運行的進程才能讀取它們。 您可以將密碼存儲在文件中並對其進行加密。 請參閱MSDN上的File.Encrypt

這只是安全性模型中的一個因素。 您可能還希望在應用程序級別對文件進行加密,以使用戶運行的惡意軟件不會四處尋找密碼。

您可以將憑據存儲在配置文件中-這樣,每次密碼更改時都無需重新編譯項目。

配置文件也可以加密,因此您只能通過正在制作的應用程序更改密碼。

有幾種方法可以做到這一點。 首先,您可以將connectionString保存在app.Config / web.config文件中。 您的連接對象可以通過使用以下方式訪問此字符串

PROJECTNAME.Properties.Settings.Default.YOURCONNECTIONSTRINGNAME

您的app.config文件可能看起來像這樣

<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="Winforms_Demo.Properties.Settings.dbNordwindConnectionString" connectionString="Data Source=(local)\\SQLEXPRESS;Initial Catalog=dbNordwind;User ID=sa" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>

如您所見,這種可能性仍然會保存任何經過硬編碼的用戶憑據 (盡管您可以通過手動編輯config.file(甚至在編譯之后)來更改它們。您可以通過向項目中添加新的數據源來創建這樣的配置文件(例如sql server)數據源),然后向導將詢問將connectionString保存在哪里。

另一種可能性是connectionStringBuilder。 此類提供一些屬性:

SqlConnectionStringBuilder conbuild = new SqlConnectionStringBuilder();
conbuild.InitialCatalog = "dbNordwind"; // database name
conbuild.IntegratedSecurity = false;  // true if you use winAuthent
conbuild.UserID = "sa"; // e.g get this info by showing a authent form
conbuild.Password = "123";
conbuild.DataSource = "servername";
SqlConnection con = new SqlConnection(conbuild.ConnectionString);

使用這種方法,您甚至可以訪問文件並讀取任何必需的數據。 在這種情況下,您必須研究文件的安全措施!

通過加密文件(System.Security命名空間)或將數據保存到任何isolatedStorage (將使用特定於用戶的Windows安全性)或通過使用“ aspnet_regiis -pef”來加密任何配置文件,可以保護文件的安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM