2017-03-08 56 views
0

我正在做一個簡單的C#.net winform應用程序,它將連接到sql server。 我想它有2種方式來連接 - Windows身份驗證和SQL服務器身份驗證。sql連接字符串Windows身份驗證c#winforms(未集成)

從我在網上找到我想出了至今與:

public static void SetConnectionStringParams(string dbAddress, bool isWinAuth, string user, string password) 
     { 
      if (isWinAuth) 
      { 
       _connectionString = 
        string.Format(
         "Data Source={0};Database = {1};Integrated Security=True;Max Pool Size=1000;MultipleActiveResultSets=True;Connection Timeout=60", 
         dbAddress, DefaultDBname); 
      } 
      else 
      { 
       _connectionString = 
        string.Format(
         "Data Source={0};Database = {1};User ID={2};Password={3};Max Pool Size=1000;MultipleActiveResultSets=True;Connection Timeout=60", 
         dbAddress, DefaultDBname, user, password); 
      } 
     } 

偉大的工程,但我無法找到如何在Windows身份驗證的情況下,我強迫使用Integrated Security=True都需要用戶名和密碼,而不是...

有沒有一個API可以做到這一點?如果沒有,將不勝感激指導如何做到這一點。

謝謝

+2

您誤解了Windows身份驗證是什麼。這意味着應用程序將使用*當前Windows帳戶*連接到數據庫。這是一個**非常好的事情,因爲用戶不必再次提供他們的憑證。將其視爲SSO開箱即用。如果沒有「集成安全性」關鍵字,您將無法進行Windows身份驗證 –

+0

*爲什麼*您想要使用SQL Server身份驗證*?你*已經*知道用戶是誰。如果您不想將個人帳戶添加到數據庫中,請將所有用戶都置於Windows組中並將該組添加到數據庫 –

+0

是的,但我希望它在強制連接到sql server時強制重新輸入用戶憑據使用當前Windows帳戶(作爲安全防範),有可能嗎?謝謝 –

回答

1

這給了一槍

  1. 詢問用戶通過Microsoft手動輸入Windows用戶名和密碼,
  2. 冒充該用戶,並獲取用戶的主要&身份
  3. 現在叉帶有此主體/身份的新線程與數據庫交談集成安全性
  4. 在工作完成或異常時沖洗用戶,身份和校長
相關問題