Asp.net-Mvc

如果 ASP.NET MVC 中的使用者匿名,則重定向到自定義 Windows 身份驗證登錄頁面

  • July 25, 2017

我有一個使用 Windows 身份驗證的 ASP.NET MVC Intranet 站點。它是使用 Windows 身份驗證從 ASP.NET MVC 的預設項目設置的。如果使用者未經過身份驗證/匿名,我一直在努力尋找有關覆蓋預設登錄彈出視窗的資訊。

預設登錄提示:

預設 Windows 身份驗證登錄提示

我在 Internet 上找到的所有內容都有近 10 年的歷史,使用的是經典的 ASP 或 Web 表單。我找不到任何使用 ASP.NET MVC 的東西。

如果使用者是匿名/未經過身份驗證的,我想做的是讓使用者被重定向到登錄視圖。此外,如果他們自動進行身份驗證並以其他使用者身份登錄,則可以註銷。

我遇到的主要問題是我找不到在我的項目中進行實際身份驗證的位置。我已經檢查過App_Start,Global.asax等。我也找不到如何覆蓋它。

我知道我缺少程式碼,但如果有人對此要求有良好的起點或經驗,我將不勝感激。

嗯…不可能使用集成 Windows 身份驗證為 IIS 站點實現自定義登錄。原因:

  • Windows 身份驗證在與表單身份驗證不同的 TCP/IP 層上工作(如果我沒記錯的話,是 Internet 層與應用程序層)。此外,您在 Windows 身份驗證上需要考慮不同的類型和版本(具有 NTLM 回退的不同 Kerberos 版本)。
  • Windows 身份驗證表單內置在瀏覽器中
  • IIS 網站不能具有混合身份驗證(基於 Windows 和基於表單)

但是,有一些解決方法。我可以想到兩個,例如:

  1. 實現自定義成員資格提供程序,您可以在需要時使用模擬/委託機制
  2. 使用 ADFS 等實施單點登錄架構。

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