2012-08-14 101 views
1

我有不同的域運行兩個應用程序:跨域會話保持活躍在asp.net

  1. webformapp.com
  2. mvcapp.com

webformapp.com有一個iframe這點到mvcapp.com。現在,當mvcapp.com上有活動時,我想讓session保持在webformapp.com中。我在webformapp.com中實現了一個通用處理程序(KeepAlive.ashx),並嘗試從mvcapp.com調用以保持會話在webformapp.com上保持活動狀態,但我想因爲跨域訪問限制,直接調用webformapp.com/KeepAlive。來自mvcapp.com的ashx通過一個簡單的http get/post請求不會觸發處理程序。給出的解決方案here用於我猜測的相同域。在這種情況下實施保持活動機制的任何更簡單的解決方案?

+0

如果應用程序位於不同的域中,並且其中一個應用程序在另一個應用程序的iframe中引用,我不明白爲什麼兩人中的任何一場會議都可能會失效。只要在web.config中配置會話超時設置,兩個會話都應該繼續有效。你如何測試這個? – Icarus 2012-08-14 14:51:22

+0

兩個網站彼此獨立。除非另有說明,否則Iframed站點不會默認刷新父站點的會話。據我所知,Iframe只是另一個網站的窗口。 – Nexus23 2012-08-14 15:05:13

+0

你的知識是正確的。我想我不明白這個問題,然後...... – Icarus 2012-08-14 15:07:53

回答

0

如果我理解你的問題,用戶正在積極地處理由webform應用程序提供的iframe中的mvc應用程序。只要瀏覽器窗口打開,從iframe之外的瀏覽器打開,你是否能夠在webform應用程序中發佈心跳超時信息?

我在過去曾做過類似的事情,我在會話中維護了一個計數器,在x刷新之後,處理程序會響應一個失敗代碼,瀏覽器可以通過重定向提示或您有什麼迴應。