0

我堅持了幾天,似乎對某些版本的IE和使用代理非常具體的問題。 我的ASP MVC 5應用程序使用Ajax請求進行身份驗證。如果請求成功,則通過將主頁面的URL分配給window.location.href來觸發重定向到主頁面。這工作正常。通過代理與IE瀏覽器重定向<11

現在,客戶端(人員)使用Kerberos代理和IE8/9。 IE未配置爲使用代理時,重定向正常工作。然後我在FF和IE8上使用相同的參數配置代理。我還在其例外列表中添加了一個條目,以排除部署了我的應用程序的IIS服務器的IP。 FF仍能正常工作,但IE8/9無法正常工作。使用代理時,主頁面從不顯示。我只得到一個空白頁面。儘管頁面背後的所有代碼似乎都在那裏。但IE 8似乎不願意解釋Javascript。我沒有測試它自己,但技術人員,我接觸告訴我,有一個與IE瀏覽器沒有問題的11

我失敗測試這裏的許多建議:https://code.google.com/p/html5security/wiki/RedirectionMethods

直到最近,我用這個ajax版本替換了通常的登錄表單。之前的版本因控制器返回而重定向:

return RedirectToAction("Index", "Main", new { area = "" }); 

儘管使用了代理,它仍然可以工作。 技術上的差異在於上面描述的重定向的那種重定向?

回答

0

原來這不是重定向的問題。

它最初似乎是重定向是最可能的地方,其中 問題可能潛伏。我做了很多測試,當我用完想法之後,我開始考慮代碼的其他部分。與客戶以前的版本相比,我開始尋找代碼的任何部分,並且我準備系統地測試那些看起來不太可能引起任何問題的部分,即使它看起來「愚蠢」 ...我很快找到了解決方案!

下面的幾行簡單的做IE停止頁面的解釋:

<link rel="icon" type="image/png" href="/Content/Images/Logo/gapLogo2014.png" /> 
<!--[if IE]> 
    <link rel="shortcut icon" href="/Content/Images/Logo/gapLogo2014.png" type="image/vnd.microsoft.icon" /> 
<![endif]--> 

一兩個鏈接標籤就足以產生問題。 IE 8/9配置爲使用代理時,即使IE的排除列表包含Web服務器的IP,該問題仍然存在。我找不到根本原因。我剛剛消除了這個因素。這個客戶不會看到圖標,沒有什麼大不了的。