2013-06-27 213 views
1

的簡要背景: 我創建一個Web應用程序,需要用它來從SCOM 2012數據庫(SQL Server 2012中),該數據庫設置爲僅Windows身份驗證提取數據,這不會是在可預見的未來發生變化,因爲公司不願意這樣做。連接到SQL Server使用Windows身份驗證

問題: 我身邊有廣泛的看着這個問題但是我無法找到一個解決方案。 我需要創建一個連接到作爲特定的Windows用戶運行的數據庫,以回拉數據。爲了清楚說明,我不想模仿最終用戶使用網絡應用程序。我有我想用於此帳戶的憑據,但如果可能的話,我需要一些幫助來做到這一點!

+0

你有個例子嗎?這是在連接字符串?謝謝Tom – RattyLaa

回答

1

你可以建立一個web服務的Web應用程序和數據庫之間,並運行,通過加入

<system.web> 
    <identity impersonate="true" userName="domain\login" password="pwd" /> 
    ... 
</system.web> 
訪問數據庫的帳戶下你的web服務

納入網絡服務的web.config

那麼你的Web應用程序可以調用Web服務來獲取/保存數據。

我知道這是有效的,因爲我與一個應用程序,這樣做的工作。也許你可以將impersonate放入你的web應用的配置文件並直接訪問數據庫,但我沒有任何經驗。

+0

感謝所有的答案,如果我無法獲得其他任何工作,更改App Pool可能是最簡單的方法。 – RattyLaa

+0

我曾嘗試添加並將模擬級別設置爲true,但沒有歡樂,謝謝您的建議 – RattyLaa

4

連接在已登錄訪問數據庫的Windows用戶的上下文中進行。你不能通過連接字符串。

您可以通過設置應用程序池的身份,以該特定用戶(這是相當標準的做法)做到這一點。或者你可以有一個方法來模擬用戶對數據庫的調用,儘管這有點多。例子見How do you do Impersonation in .NET?

+0

@RattyLaa請注意,雖然您提到您不想使用Web應用程序模擬最終用戶,但此答案會爲您提供這是一種有效的方法,因爲您將模擬*有權訪問SQL Server *的用戶。 –

+0

@Aron我認爲你誤解了答案/評論。也不建議使用Web應用程序模擬最終用戶。 –

+0

我已經嘗試修改applicationHost文件來更改我的計算機上的本地應用程序池的用戶名和密碼,以便IIS Express在VS中運行應用程序時仍然嘗試使用與本地用戶帳戶相同的方式連接到數據庫, ? – RattyLaa

相關問題