簡體   English   中英

使用Windows身份驗證登錄到SQL Server

[英]using windows authentication to log in to a sql server

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

但是,我遇到的問題是,當我嘗試使用受信任的連接登錄sql服務器時,應用程序沒有通過該網站傳遞用戶的域名/用戶名,而是傳遞了NT AUTHORITY \\ ANONYMOUS LOGON。

我通過讓網站顯示一個問候語來驗證身份驗證是否有效,該問候語在我登錄到該網站時可以正確識別我的用戶名,因此這不是匿名訪問問題。 盡管在應用程序的web.config文件中進行了設置,但我認為這是一個模擬問題。

奇怪的是,當我在開發機器上甚至通過生產服務器上的遠程桌面在本地運行Web應用程序時,它都能正常運行。 我不確定這是怎么回事。

最后,我正在運行IIS 7.5,Windows Server 2008 R2和SQL Server 2008

這稱為約束委派 基本上,這意味着默認情況下無法將模擬的上下文委派給網絡上的資源進行身份驗證。 如果沒有適當的委派,任何人都可以在企業中創建一個網站並公開一些良性應用程序。 但是在下面,一旦用戶對網站進行了身份驗證,它就可以冒充該用戶執行任何操作 ,例如閱讀他的郵件,代其出售股票,為網站開發人員加薪。 這就是為什么在模擬用戶的計算機外部不信任模擬上下文。

為了允許模擬的上下文連接到遠程資源(例如文件共享或數據庫服務器),域管理員必須顯式設置約束委派,這允許模擬的上下文使用一個特定資源進行身份驗證。

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

如果您的Web應用程序嘗試訪問數據庫,它將使用運行IIS w3wp.exe進程的帳戶(默認情況下為networkservice)來執行此操作。 如果要更改此設置,則需要使用模擬。

該文檔對其進行了很好的解釋。

正如該文檔還根據您的應用程序說明的那樣,您可能希望使用受信任的子系統而不是模擬。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM