2016-03-17 51 views
0

我有一個調用SQL Server的ASP.NET WebAPI(目前是2008,但將盡快遷移新內容)。認證是Windows認證。我給了執行WebAPI訪問數據庫權限的IIS Apppool。無法使用IIS APPPOOL連接到SQL Server用戶

當我使用下面的連接字符串,一切正常:

Server=localhost; Database=LPG; Integrated Security=SSPI; 

對於生產系統的的WebAPI和數據庫服務器可能是在不同的機器,所以我想使用的服務器的名稱,而不是的本地主機。

Server=my.server.com; Database=LPG; Integrated Security=SSPI; 

使用此連接字符串,我得到以下錯誤。

登錄失敗。登錄來自不受信任的域,不能與Windows身份驗證一起使用。

這可能是因爲IIS APPPOOL - 用戶是本地帳戶,當調用my.server.com時,它不能使用本地帳戶。

有誰知道如何解決這個問題?

由於提前,
弗蘭克

+0

在生產計算機上授予訪問SQL服務器以識別用於配置應用程序池的身份。但既然你說了它的本地帳戶,它可能無法在SQL服務器上識別。所以你需要用域用戶(網絡)用最小的必需特權替換它。 –

+0

嘿Pankaj,謝謝你的提示!我剛剛創建了一個域用戶並使用它來運行應用程序池(Identity> User defined)。我將此用戶添加到包含WebAPI的文件夾,但服務器請求失敗。當我想用該域用戶運行應用程序池時,是否需要更改其他內容? – Aaginor

+0

您的意思是請求Web服務器駐留web apis或SQL服務器失敗?你有沒有在SQL服務器上訪問這個身份? –

回答

0

的問題是生產服務器的設置可能不進行委派。 Web服務器和數據庫服務器之間必須有關係,以便瀏覽器上的用戶流向數據庫。

+0

它們將位於相同的Windows域中。嗯。也許像Pankaj建議的那樣,使用域用戶?但是,如何將域用戶併入WebAPI-Server中的SQL調用中? – Aaginor

+0

它不僅僅處於同一個域中。您正在嘗試將Web瀏覽器的用戶傳遞給Web服務器,Web服務器又要將該ID傳遞給數據庫。這就是所謂的代表團。 這是一個網絡管理員的任務,但也許這會讓你開始 https://technet.microsoft.com/en-us/library/cc739740(v=ws.10).aspx –

+0

從什麼我經驗,用於運行web api的用戶是用來調用SQL服務器的用戶。謝謝你的提示,我會讀一讀:) – Aaginor