簡體   English   中英

Chrome繞過MVC 4 Web應用程序的Windows身份驗證

[英]Chrome bypass Windows Authentication for MVC 4 web application

我有一個使用Windows身份驗證的MVC 4 Web應用程序。 我將該應用程序部署到帶有IIS 7的真實Web服務器上。Windows身份驗證功能可以很好地與Internet Explorer(IE),FireFox(FF)和Safari一起使用,但不適用於Chrome; 我正在使用Chrome版本27。

在這里,“ Works ”表示當用戶打開瀏覽器(IE,FF或Safari)並瀏覽到Web應用程序站點時,首先會提示他/她在對話框中提供有效的憑據。 然后,如果他/她的憑據有效,則允許用戶查看網站頁面。 不適用於Chrome ”表示Chrome始終允許用戶立即瀏覽網頁,而不會看到憑據對話框,也不會像IE,FF或Safari一樣提示用戶在對話框中輸入憑據! 盡管我嘗試清除Cookie,Chrome瀏覽器的緩存,然后關閉並再次打開Chrome,但我不知道該如何解決。 我知道不應執行Chrome的“清除Cookie”操作,因為IIS中的Windows身份驗證模式與“表單身份驗證”模式無關,與Cookie無關。

第一次將Web應用程序部署到服務器后,當我使用Chrome測試我的Web應用程序時,Chrome瀏覽器確實提示我在對話框中輸入憑據,但是從第二次開始,Chrome瀏覽器不再提示我。

請讓我知道我應該怎么做才能阻止Chrome瀏覽器讓用戶繞過憑據提示對話框。 先感謝您。

我按照以下兩個步驟使MVC Web應用程序可與IE,FF和Safari一起使用:

1個

在我的MVC 4 Web應用程序(Intranet模板)的Web配置(web.config)文件中,我將Windows身份驗證功能指定為:

<authentication mode="Windows" />
    <authorization>
      <deny users="?" />
    </authorization>

2

在真實的Web服務器上,在IIS版本7中,我打開MVC網站應用程序節點並轉到其“身份驗證”節點以啟用Windows身份驗證,並禁用“匿名身份驗證”。

看一下保護ASP.NET MVC 4 App和新的AllowAnonymous Attribute的安全

您不能使用路由或web.config文件保護MVC應用程序(任何版本)的安全。 保護MVC應用程序安全的唯一受支持方法是應用Authorize屬性

引用

MVC使用路由,並且不會將URL映射到物理文件位置,例如WebForms,PHP和傳統的Web服務器。 因此,使用web.config肯定會在您的站點中打開一個安全漏洞。

如果將來這種情況發生變化,產品團隊將與您進行溝通,但現在毫無例外,這是規則。

例子:

從默認的ASP.Net MVC項目(互聯網/內聯網)開始。

編輯web.config並添加:

<location path="Home">
  <system.web>
    <authoirzation>
      <deny users="*">
    </authoirzation>
  </system.web>
</location>

運行項目,默認情況下,您將使用默認路由/Home/Index並看到內容,只需繞過web.config而不更改默認模板即可。 為什么? 因為ASP.Net管道正在將請求的URL與web.config中指定的位置進行比較。 但是, 管道中執行了“授權事件” ,將進行路由(默認路由或自定義路由),並允許訪問所謂的受限區域。

此外,任何MVC Redirect()也將繞過相同的安全措施,就像在授權管道事件之后再次進行路由一樣。

您需要將站點添加到本地Intranet區域。 我們通過組策略來做到這一點。

請參閱如何為Google Chrome啟用自動登錄用戶身份驗證

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM