我有一個ASP.NET MVC3應用程序,並將Windows身份驗證部署到IIS6。如果經過身份驗證的用戶單擊了他們未被授權查看的鏈接,則會按照預期提示他們輸入其用戶名和密碼(在瀏覽器對話框中,而不是頁面上)。獲取空白頁而不是401錯誤頁面
但是,在單擊取消或三次輸入無效憑據後,我看到一個空白白頁,而不是看到401未授權頁面。
看着提琴手,點擊取消後有三個請求/迴應。下面是響應摘要和標題:
ASP.NET訪問被拒絕的消息(401.2)
HTTP/1.1 401未經授權 日期:星期五,2012年7月20日14點34分21秒GMT 服務器:微軟IIS/6.0 WWW身份驗證:協商 WWW驗證:NTLM X供電,通過:ASP.NET X-ASPNET-版本:4.0.30319 緩存控制:私人 內容類型:文本/ HTML;字符集= UTF-8 的Content-Length:1701 代理支持:基於會話的認證
IIS您無權查看此頁(401.1)
HTTP/1.1 401未經授權 內容 - 長度:1539 的Content-Type:text/html的 服務器:Microsoft-IIS/6.0 WWW驗證:NTLM TlRMTVNTUAACAAAADAAMADgAAAAF ......(略去了) X供電,通過:ASP.NET 日期:週五,20 Jul 2012 14:34:21 GMT 代理支持:基於會話的身份驗證
空響應
HTTP/1.1 401未經授權 日期:星期五,2012年7月20日14時34分21秒GMT 服務器:Microsoft-IIS/6.0 WWW身份驗證:協商 WWW驗證:NTLM X-已啓動方式:ASP.NET X-ASPNET-版本:4.0.30319 X-AspNetMvc-版本:3.0 緩存控制:私人 的Content-Length:0 代理支持:基於會話的驗證
我如何得到這個顯示401錯誤頁面?
更新1:
這裏是我的web.config錯誤部分。我也使用HandleErrorAttribute
。
我懷疑IIS是返回空白頁而不是ASP.NET,但我不知道如何證明。
更新2:
這很有趣。如果我刷新空白頁面,我看到ASP.NET訪問被拒絕消息。
只是一個猜測,但它試圖將它們重定向回到用戶名和密碼頁面,因爲它們仍然沒有被授權?既然它已經認爲它處理了用戶,那麼視圖就沒有任何東西可以顯示了? – 2012-07-20 15:31:30
它不是一個登錄頁面,它是瀏覽器登錄對話框。 – jrummell 2012-07-20 16:35:21
對不起,沒有看到那部分。第三次嘗試後,您是否將他們重定向到401頁面?如果沒有,那麼你仍然在同一頁面上,但你沒有得到任何內容顯示,因爲服務器不發送任何內容。 – 2012-07-20 17:28:48