2016-08-23 107 views
0

我有一個問題,我找不到答案。我使用C#編寫Windows Forms應用程序。我正在使用Entity Framework連接到SQL Server數據庫。正如我看到數據庫的密碼存儲在我的連接字符串中。我在我的應用程序中創建用戶,然後將它們存儲在數據庫表中。從C#應用程序安全登錄到SQL Server數據庫

我知道這不是一種安全的方法,因爲密碼可以從我的連接字符串中被竊取,並且我無法控制哪個用戶在數據庫中進行了哪些更改。我認爲可能在我的應用程序中爲每個用戶在SQL Server中創建帳戶是一個好主意。然後,我可以填寫連接字符串與用戶密碼時,他登錄。但是,當我在那個時候沒有訪問數據庫的時候,我該如何檢查登錄是否正確?

由於提前,

阿圖爾

+0

您可以使用域帳戶。運行該應用程序的帳戶也有權讀取/寫入數據庫。 – user1666620

+0

如果它是一個Windows窗體應用程序,所有用戶如何共享相同的數據庫? – wonderbell

+0

數據庫在服務器上。 – Artur

回答

0

創建一個域服務帳戶,並通過「綜合安全」 = true或SSPI,連接如果這是真的它與Windows連接帳戶配置,如果是SSPI然後它會通過當前的Windows登錄連接,如果它是假的,那麼我們需要提供用戶名和密碼。

基於提供商,

的SqlClient - 集成安全性=真; - 或 - 集成安全性= SSPI;

OleDb - Integrated Security = SSPI;

Odbc - Trusted_Connection = yes;

OracleClient - Integrated Security = yes;

+0

但請告訴我能做些什麼?我需要在應用程序中爲用戶創建新帳戶的可能性。他們應該知道他們的密碼纔有可能登錄。我的應用程序將安裝在許多計算機上,並且使用此應用程序用戶將能夠更改數據庫(位於互聯網)。 – Artur