2014-01-09 54 views
1

開發環境我如何在Asp.net MVC 4重定向使用IE11

VS 2010, ASP.net MVC 4, using Area. 
Windows 7 
.net Framework 4.0 

客戶端環境

IE11 11.0.9600.16428 
Windows 7 
.net Framework 4.0 

驗證後的用戶信息,我需要redirct主頁。代碼是

public ActionResult Login(string userName, string userPassword) 
{ 
    UserDao userDao = new UserDao(); 
    ..... 
    return RedirectToAction("Main", "Index"); 
} 

在IE7-IE10,FF,Chrome中,此代碼是完美的。

但在IE11中,響應不正確,無論用戶名和密碼是否正確,視圖都在登錄頁面中循環。

使用F12,觀看HTTP狀態代碼,狀態代碼爲302,但在其他(FF,鉻),狀態代碼爲200。

URL Protocol Method Result Type Recieved Cost  
/Home/Login HTTP POST 302 text/html .70 KB 265 ms 
/Index/Main HTTP POST 302 text/html 312 B 125 ms 
/Home/Index?ReturnUrl=%2fIndex%2fMain HTTP POST 200 text/html 3.95 KB 78 ms 

在第二行,結果應該是200 ,但302.

爲什麼?以及如何解決重定向? (不要使用兼容性視圖)

+0

正如我理解你的問題,在IE11中,登錄頁面被一次又一次地調用。我懷疑這是由於身份驗證不適用於IE11。您的IE11中啓用了cookies嗎?登錄後你能在Fiddler中看到身份驗證Cookie嗎?如果身份驗證失敗,您的應用程序將會一遍又一遍重定向到登錄頁面(如果您在登錄後重定向到受保護的資源)。 – Markus

+0

在調用Login()之後,session有數據,並且下一個請求,asp.net mvc ActionFilter可以獲取session.And cookie正在工作。身份驗證成功,只有頁面沒有重定向到正確的位置。 – Cruil

+0

我與MVC3有同樣的問題。只有一些頁面(用於頁面由相同的控制器提供)導致重定向到登錄頁面,但我們似乎仍然是認證(我們可以導航到需要授權用戶的其他頁面)。 –

回答

0

我有一個類似的問題,因爲用戶看起來是經過身份驗證的(佈局會呈現僅在用戶通過身份驗證時才顯示的菜單欄),但對於某些頁面,用戶。被重定向到登錄頁面,這是隻有在IE11發生的事情,以及所有其他瀏覽器沒有這個問題

在我的情況的解決方案是增加cookieless="UseCookies"我們<forms />配置元素在web.config

<forms loginUrl="~/Account/LogOn" timeout="2880" cookieless="UseCookies" /> 

IE11現在表現自己。

另請參閱ASP.NET 4.0 forms authentication issues with IE11。可能這是在更高版本中解決的問題。