
我發誓幾週前我創建了一個有關此問題的問題,但也許我刪除了它,因為我無法在任何地方找到它。
- ASP.NET 4.0
- IIS6
- Windows Server 2003
- 使用 Windows 驗證的 Intranet 站點
- 三台具有相同作業系統和 IIS 版本的伺服器,每台伺服器託管同一網站的開發、生產和災難復原 (DR) 版本
現在考慮一下事件的順序:
- 使用者從 IE8 以及任何版本的 FF 和 Chrome 開始
- 使用者只能存取 DR 站點。登入提示拒絕使用其他網站的 Windows 憑證對他們進行身份驗證,因此他們無法登入
- 他們安裝了全新的 Windows 7 副本並升級到 IE9。現在他們可以在 IE9 中存取開發和災難復原站點。他們能夠在 Chrome 中造訪所有三個網站。
我在網路設定中驗證了以下內容:
- 使用目前使用者名稱和密碼自動登入
- 啟用整合 Windows 身份驗證
我在 MSKB 中發現了這一點: http://support.microsoft.com/kb/215383
NTAuthenticationProviders 配置資料庫屬性未定義,因此 IIS 應Negotiate,NTLM
預設使用。
其他詳情:
- 這種情況僅在幾週前才開始發生。使用者可以使用 IE8 正常存取我們的網站。
- 其他用戶沒有遇到此問題。
有誰知道什麼可能導致他的瀏覽器不將身份驗證資訊傳送到伺服器?這是用戶看到的身份驗證視窗的螢幕截圖:
額外細節
以下是該使用者的安全事件檢視器中顯示的內容。我用 刪除了敏感資訊?
。
事件類型:成功審核 事件來源:安全 事件類別:登入/登出 事件ID:538 日期:2014 年 7 月 14 日 時間:下午 1:27:37 使用者:?\? 電腦: ? 描述: 用戶登出: 使用者名稱: ? 領域: ? 登入ID:(0x0,0x3F99497F) 登入類型:3 事件類型:成功審核 事件來源:安全 事件類別:登入/登出 事件ID:540 日期:2014 年 7 月 14 日 時間:下午 1:27:14 使用者:?\? 電腦: ? 描述: 網路登入成功: 使用者名稱: ? 領域: ? 登入ID:(0x0,0x3F997233) 登入類型:3 登入過程:NtLmSsp 驗證包:NTLM 工作站名稱: ? 登入 GUID:- 來電者用戶名:- 呼叫者域:- 來電登入 ID:- 呼叫者進程 ID:- 轉機服務:- 來源網路位址:? 來源連接埠:16220
答案1
啟用自動 NTLM 辨識的方法如下。
IE瀏覽器
- 在 IE 中,透過「IE -> 工具 -> Internet 選項」或透過控制台 -> Internet 選項存取 Internet 設定
- 轉到安全性選項卡
- 點擊網站
- 按一下“本機 Intranet”或“受信任的網站”
- 將您的網站加入清單中
- 如果需要,請取消選取“需要對此區域中的所有網站進行伺服器驗證 (https:)”
- 點選關閉
- 按一下自訂等級
- 向右捲動到「使用者身份驗證/登入」下的底部,並確保選取「使用目前使用者名稱和密碼自動登入」。
- 按一下“確定”
谷歌瀏覽器
Google Chrome 實際上使用與 IE 相同的設置,即上面的「控制台」->「Internet 選項」設置,因此無需執行更多操作。
火狐瀏覽器
- 開啟 Firefox 並在網址列中輸入「about:config」(不含引號)
- 在「過濾器」欄位中輸入
network.automatic-ntlm-auth.trusted-uris
- 雙擊上面的內容並輸入網站或整個網域的 URL,以逗號分隔
- 如果您的網站不使用 FQDN(例如
http://intranet
代替http://intranet.domain.com
),請也執行以下操作:- 設定
network.automatic-ntlm-auth.allow-non-fqdn
為 true - 設定
network.negotiate-auth.allow-non-fqdn
為 true
- 設定