2016-10-22 81 views
0

我剛剛意識到,當從www.website.com重定向到沒有www的website.com時會話丟失。MVC 4丟失會話,因爲重定向從www.website.com到網站

但是我很幸運,我可以設置服務器,所有重定向都以www開頭。在將來,我不希望我的應用程序依賴於服務器,我想讓它依賴於代碼。

例如:

@Html.Hidden("PageManagerUrl", Url.Action("PageManager","Admin")) 產生/Admin/PageManager/,我用location.href =網址(URL時爲/Admin/PageManager/

這是不是100%肯定,我會在第一時間失去我的會議重定向的,但是當我測試,但重定向前進和後退,關於第三或第四的時間,會話將丟失我設置服務器設置後:

Preferred domain * www.website.com 

Select the URL (either with or without the www. prefix) to which site visitors will be redirected via a SEO-safe HTTP 301 redirect.` 

會議是NE Ver再次失敗。所以我想知道,如何做到最好的重定向而不會丟失會話?請給我例子如何從控制器和JavaScript /視圖做到這一點。

+0

根據您的應用程序池設置,如果在發生重定向時發生了回收過程,則會話狀態可能會丟失。可能您可能會嘗試使用SQL Server會話狀態管理來根據保存在數據庫中的會話內容來管理用戶會話。 –

+0

沒有應用程序池回收,我已經檢查過它們。這是因爲別的東西 –

回答

0

你有任何global.asax文件嗎?

如果是,那麼請檢查它是否包含這兩個方法簽名。

保護無效在session_start(對象發件人,EventArgs的) {

}

保護無效Session_End中(對象發件人,EventArgs的) {

}

+0

我看到這可能會有幫助,但是我應該在兩個函數上插入哪些代碼以確定會話結束的原因是什麼? –