2011-03-25 28 views
1

我已經安裝了訪問不同服務器中的SQL Server數據庫的新Web應用程序。我使用的是Windows身份驗證,並得到的錯誤:訪問不同服務器中的SQL Server的ASP.NET

用戶登錄失敗XXX

當我嘗試設置identity impersonate="true"web.config文件,它只是拋出一個錯誤

登錄失敗的匿名用戶

此外,我使用窗體身份驗證來驗證使用rs從我的網站和使用不同的應用程序池。

更新:連接字符串基本上是這樣的:

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI; 

更新:

我的虛擬目錄具有匿名身份驗證和Windows身份驗證功能。

+2

請向我們展示您的連接字符串!我們無法讀取您的屏幕(也不介意).....您需要幫助我們爲您提供幫助¨ – 2011-03-25 21:14:49

+2

IIS配置爲用於您的網站的帳戶是否在網絡帳戶下運行(從Active Directory,不是本地計算機帳戶)對SQL Server數據庫具有安全權限。 IIS默認使用本地帳戶運行,這意味着無法在SQL Server登錄帳戶上使用Windows身份驗證,因爲SQL Server框不會顯示該帳戶的可見性。網絡服務器。 – 2011-03-25 21:20:06

+0

@marc_s:基本上是這樣的:「Data Source = myServerAddress; Initial Catalog = myDataBase; Integrated Security = SSPI;」 – acermate433s 2011-03-25 21:21:13

回答

0

由於您尚未在您的SQL Server配置中提供連接字符串或信息,因此很難爲您提供確切的答案。您最好的選擇是查看IIS配置並計算出用戶試圖訪問不同的SQL Server。然後您需要授予此帳戶訪問數據庫的權限。這是一個常見問題,大部分更改都需要在SQL Server中進行,除非您可以更改運行Web服務器的帳戶。

+0

基本上,我的連接字符串如下所示:「Data Source = myServerAddress; Initial Catalog = myDataBase; Integrated Security = SSPI;」 – acermate433s 2011-03-25 21:30:33

3

通常ASP.NET作爲一個獨立的帳戶運行。爲了使用集成身份驗證(SSPI)訪問遠程SQL Server,您需要擁有更多「永久」存在。簡單的方法是將應用程序池轉移到使用NETWORK SERVICE內置帳戶。稍微複雜一點的是使用一個指定的帳戶。在等式的SQL服務器端,您需要給予相同的帳戶 - 匹配用戶/密碼或網絡服務 - 對數據庫有適當的權限。

您的DBA應該能夠提供幫助。

+0

應用程序池已經使用NETWORK SERVICE。 – acermate433s 2011-03-25 21:48:18

+1

然後你需要給SQL服務器上的NETWORK SERVICE權限,你應該很好。 – 2011-03-25 22:22:35