2010-06-04 99 views
2

我有一個Web應用程序設置在我們的Intranet上使用Windows身份驗證(成功),我試圖鏈接到一個單獨的服務器上運行的數據庫。使用Windows身份驗證登錄到sql server

但是,我遇到的問題是,當我嘗試使用可信連接登錄到SQL Server時,而不是使用網站的人員的域/用戶名時,應用程序正在通過NT AUTHORITY \匿名登錄。

我檢查了身份驗證是通過讓網站顯示一個問候語,當我登錄到網站時確實識別我的用戶名,因此它不是匿名訪問問題。儘管設置在應用程序的web.config文件中,但我認爲這是一個模擬問題。

奇怪的是,當我在開發機器上運行它時,或者甚至通過生產服務器上的遠程桌面在本地運行時,Web應用程序工作正常。我不確定這裏發生了什麼事。

最後,我運行IIS 7.5和Windows Server 2008 R2和SQL Server 2008

回答

3

這叫做Constrained Delegation。基本上,這意味着默認情況下模擬的上下文無法委派給網絡上的資源進行認證。如果約束委派不到位,任何人都可以在企業中創建一個網站並公開一些良性應用。但在下面,一旦用戶通過網站驗證,它可以模擬該用戶做任何事情,如他的郵件,代表他的銷售股票,提高網站開發人員,*任何事情。這就是爲什麼冒充用戶的機器以外的模擬上下文不可信。

爲了讓模擬上下文連接到遠程資源(如文件共享或數據庫服務器)的域管理員必須明確設置了約束委派,這使得模擬上下文與一個特定資源認證。

有描述的問題和解決方案的許多文章:

0

如果您的Web應用程序嘗試訪問您的數據庫,它將使用運行IIS w3wp.exe進程的帳戶(默認情況下爲networkservice)執行此操作。 如果你想改變這一點,你將需要使用模擬。

This document解釋它很不錯。

由於文檔還根據您的應用程序進行了說明,因此您可能希望使用受信任的子系統而不是模擬。

相關問題