Iis

我可以在 IIS / ASP.NET 中檢測經過身份驗證的域使用者而不提示其他人提供憑據嗎?

  • August 5, 2015

我正在更新一個使用表單身份驗證的舊 ASP .NET 3.5 webforms 應用程序。要求是它需要自動登錄經過身份驗證的域使用者,同時仍然允許外部使用者像以前一樣手動登錄。

明確一點:如果目前登錄的使用者與伺服器在同一個域中,我需要找出他們的名稱,並使用此資訊繞過舊的登錄系統。並非所有使用者都會在網路上。

我遇到的問題是,雖然我可以從 .NET 的Request.LogonUserIdentity獲取登錄使用者,但我必須在相關頁面上禁用匿名訪問才能正常工作。發生的情況是,任何未被辨識的人都會收到登錄提示以登錄域,但我不希望這樣,因為某些使用者在域中沒有使用者帳戶。

我能想到的唯一解決方案是為域使用者提供一個自動重定向的特殊登錄頁面。但是如果他們可以直接訪問任何頁面會更好。

該站點在帶有 IIS 6.0 的 Windows Server 2003 R2 上執行。

謝謝。

最簡潔的答案是不。除非您專門打開了 Windows 身份驗證(並且禁用了所有其他身份驗證方法),否則使用者將不會針對域或本地電腦進行身份驗證……並且您將無法以程式方式訪問此資訊。

長答案也是否定的。如果兩者都啟用,則匿名身份驗證將覆蓋 Windows 身份驗證…如果啟用匿名,IIS 將跳過其他身份驗證方法。如果啟用了 Windows 身份驗證(禁用任何匿名),IIS 將發送 Kerberos / NTLM 質詢,然後(在提示後)瀏覽器才會發送憑據。如果在 Intranet 區域內,Internet Explorer 將在不提示的情況下發送 Kerberos 資訊。-克里斯

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