2015-08-28 78 views
0

我有一個連接字符串中的App.config像這樣:C#的WinForms不接受連接字符串的用戶資料

<add name="connectionString" 
     connectionString="Data Source=SERVER;Initial Catalog=DB;Integrated Security=True;User ID=domain\username;Password=12345;Connection Timeout=300" 
     providerName="System.Data.SqlClient" /> 

我然後調用代碼後面的字符串,像這樣:

string conSTR = System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString; 
       SqlDataReader reader; 
       using (SqlConnection sqlConn = new SqlConnection(conSTR)) 
       using (SqlCommand cmd = new SqlCommand(SQLQuery, sqlConn)) 
       { 
        sqlConn.Open(); 
        reader = cmd.ExecuteReader(); 
        while (reader.Read()) 
        { 
        .... stuff happens here 
        } 
       } 

我的地方帳戶無權訪問服務器,但傳遞到連接字符串的服務帳戶不會。

我得到的錯誤是:

Cannot open database "DB" requested by the login. The login failed. 

Login failed for user 'domain\MyUserName'. 

出於某種原因,它完全無視在連接字符串中的用戶名/密碼,並嘗試使用我的帳戶連接。

我該如何解決這個問題?

回答

4

您在連接字符串中集成了security = true,請將其刪除。

+0

有時候簡單的事情......但現在我得到的服務帳戶「登錄失敗的用戶域\\帳戶」。「',即使密碼是正確的。是否期望SQL登錄,而不是Windows身份驗證? –

+0

是的,我認爲是這樣,http://www.connectionstrings.com/sql-server/可以幫助你 – Jay

+1

是的,你可以使用集成的安全性作爲當前的Windows用戶或SQL登錄如果你想使用一個替代域名您必須使用模擬功能 – shf301

0

這是因爲你指定Integrated Security=True;。這否決了任何其他身份驗證設置,將其刪除,它將使用提供的用戶名和密碼。