2012-04-10 47 views
1

我有一個使用IIS設置的本地測試環境。我正在使用下面的連接字符串使用我的Windows身份驗證與ASPX頁面的代碼隱藏中的c#連接。我收到[PCNAME]/ASPNET登錄失敗的錯誤。爲什麼當我指定我的連接字符串使用我的登錄名時,用戶名ASPNET試圖登錄?SQL Windows驗證

user id=[UID];password=[PASS];server=[LOCALSERVER];database=db_specialOps;Trusted_Connection=yes 
+0

更可能的,你實際上並沒有使用該連接字符串。你如何打開連接? – 2012-04-10 15:35:13

+0

可能的重複http://stackoverflow.com/questions/1642483/sql-server-connection-string-trusted-connection-true-issue – 2012-04-10 15:38:55

+0

@PaulAlanTaylor我看了一遍,它確實有所幫助,但我是不知道它給了我一個明確的答案/修復。不過謝謝。它確實有助於澄清一些問題。 – steventnorris 2012-04-10 15:57:42

回答

3

受信任的身份驗證使用正在執行該進程的用戶的憑據。如果指定爲yes,則連接字符串中的用戶名和密碼將被忽略。

在這種情況下,ASPNET用戶帳戶是運行該進程的用戶,因此這是用於連接到SQL Server的帳戶。

檢查,另一個SO問題解決了這個問題。

When using Trusted_Connection=true and SQL Server authentication, will this effect performance?

+0

如果Trusted_Connection不存在,我的身份驗證失敗,我的Windows身份驗證uid。如果是,我得到ASPNET錯誤。我的UID被設置爲整個服務器的sa和相關數據庫的dbo。 – steventnorris 2012-04-10 15:59:58

+1

我可以問爲什麼你不只是創建一個SQL Server服務帳戶供您的應用程序專用?這是幾乎所有我寫的應用程序都使用的策略。 – 2012-04-10 16:24:22

+0

我試圖儘可能地複製生產環境。一個簡單的SQL驗證可以在測試中正常工作,但如果可能的話,Windows驗證將提供更強大的測試環境。 – steventnorris 2012-04-10 16:56:59

0

卸下連接字符串的Trusted_Connection=yes一部分。它告訴sql客戶端庫使用當前進程的Windows身份使用Windows身份驗證連接到sql服務器。在ASP.NET的情況下是[PCNAME]/ASPNET。這就是爲什麼你看到這個錯誤信息。

如果您想使用sql auth,只需提供用戶名和密碼 - 沒有Trusted_Connection=yes部分。對於Windows身份驗證

+0

我正在使用我的Windows身份驗證,而不是sql身份驗證。我認爲在這種情況下需要Trusted_Connection。 – steventnorris 2012-04-10 16:01:05

+0

使用Windows身份驗證時,不能在連接字符串中指定用戶名和密碼。相反,請設置ASP.NET應用程序池的標識。 – 2012-04-10 16:23:16

+0

我到底該怎麼做? – steventnorris 2012-04-10 16:57:16

0

連接字符串:

connectionString="Server=MyServer;Database=MyDb;Trusted_Connection=Yes" 

OR

connectionString="Initial Catalog=MyDb;Data Source=MyServer;Integrated Security=SSPI;" 

沒有用戶名/密碼


與用戶SQL身份驗證連接字符串/傳遞

connectionString="Server=MyServer; Database=pubs; User Id=MyUser; password= [email protected]" 
     providerName="System.Data.SqlClient" 

也看到了這個問題,可以幫助你: Connect to SQL Server using windows authentication and specific account

+0

好吧,所以我理解Windows認證與SQL認證位。我的用戶ID作爲使用Windows身份驗證的SQL用戶添加到安全/登錄部分。但是,當我嘗試使用特定用戶進行連接並傳遞給我的用戶名時,它不起作用。這種方法在生產中工作得很好。 – steventnorris 2012-04-10 17:04:10