Asp.net-Mvc

視窗身份驗證在 MVC4 中不起作用

  • February 28, 2014

設想

使用者A可以訪問 MVC4 網站中除一個以外的所有頁面。但是使用者B可以訪問所有頁面(沒有限制)。

到目前為止我做了什麼?

  1. 在 IIS 7.5 上部署網站。
  2. 為 IIS 上的託管網站啟用視窗身份驗證並禁用匿名身份驗證。
  3. 測試網站。

測試結果 -

(1) 使用者B登錄網站所在系統*(開發系統)時,無需提示對話框即可訪問網站。*

(2) 但是當相同的網站以相同的設置發佈在伺服器*(生產系統)*上時,網站仍然會彈出請求憑據。

開發系統生產系統都在同一個域中(我們將其命名為domain.com)。

問題

為什麼網站要求同一域中的同一使用者提供憑據?

根據我對Window Authentication的研究,我想總結以下幾行*(也作為我的參考)* -

**(1)**如果您正確配置了 WA, Window Authentication(縮寫為 WA)將始終顯示驗證使用者的提示。

請參閱下面的快照中禁用匿名身份驗證和啟用**Windows 身份驗證。

(2)即使將NTLM設置為高於****Kerberos (在 IIS 中)的頂級提供程序,IIS 仍會要求提供 Window 憑據。快照顯示如何做到這一點。

如何為視窗身份驗證設置 IIS 提供程序

(3)如果您想避免**在瀏覽器上顯示 WA 提示,請按照以下步驟操作 -

(a) 打開 IE 瀏覽器 –> Internet 選項–>安全選項卡。

(b) 將站點添加到本地 Intranet區域,以便瀏覽器將登錄的使用者名和密碼發送到 IIS。

將網站添加到 Intranet 區域

注意 - 以上幾點普遍適用於 MVC 和 ASP.NET。

回答我的問題 為什麼網站要求同一域中的同一使用者提供憑據?

因為我在開發系統上設置了匿名身份驗證和 Window 身份驗證。(愚蠢的錯誤)

引用自:https://stackoverflow.com/questions/22024896