Iis

IIS、SQLServer、Google Chrome 和 Windows 身份驗證

  • March 3, 2014

我現在在網際網路上搜尋了將近 4 天,但我被卡住了。

我創建了一個簡單的 ASP MVC4 Intranet 網站,並將其部署到名為:iis. 那台電腦與我的電腦位於同一個域中。

在我的域內,我有 3 台電腦:my_pc伺服器iissql伺服器。

當我在我的電腦上輸入地址http://iis時,我看到我已正確登錄:

在此處輸入圖像描述

這適用於 IE 和 Chrome。<- 到目前為止一切正常!

當我嘗試在我的網頁 - WebAPI 控制器中進行 sql 查詢時,問題就開始了。

在 IE 上我得到正確的結果,但在 Chrome 上我得到錯誤: 在此處輸入圖像描述

在 Web.config 中,我需要配置:

&lt;authentication mode="Windows" /&gt;
&lt;identity impersonate="true" /&gt;

在 IIS 內部,我禁用了匿名身份驗證並啟用了 Windows 身份驗證。

我的 IIS 受信任可以將請求委託給我的 SQL 伺服器。

最奇怪的部分是,當我嘗試打開我的網頁(使用 sql 查詢)時出現錯誤,然後當我在 IE 中打開相同的網頁(這是成功的)並且我刷新 Chrome 網站時正確載入並工作了一段時間(隨機,有時 5 分鐘,有時 30 秒)。

我嘗試將[Authorize]屬性添加到特定方法,但這沒有幫助。

看起來 Chrome 沒有將 kerberos 令牌傳遞給 IIS。

我已經嘗試過這裡描述的步驟:http: //dev.chromium.org/developers/design-documents/http-authentication但沒有任何運氣。

有人可以指導我一步一步如何配置 Google Chrome 和休息(如果需要,IIS,SQL)以在 Chrome 中使用 Windows 身份驗證?

您的問題是您正在使用鉻文件來解決鉻問題。雖然相似,但它們是兩種不同的瀏覽器。您需要通過將 IIS 可以委託給的伺服器列入白名單來啟用委託。您在 Chrome 中執行此操作的方式類似於 chromium,但對於您需要使用的系統資料庫項

$$ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome $$用於鍍鉻而不是$$ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium $$為鉻。 當您閱讀文件時,您會發現您可以使用組策略、Chrome for Business 或命令行來啟用委派,但在您的設置中,我假設您使用了系統資料庫選項。我發現設置的關鍵是AuthNegotiateDelegateWhitelist。將值設置為“*”以開始。一旦你讓它工作,通過將 * 更改為以逗號分隔的伺服器列表(按 IP 地址或 DNS 名稱),將其鎖定到您想要的伺服器。允許使用萬用字元。您可能還想查看 AuthServerWhiteList 鍵。

引用自:https://serverfault.com/questions/478891