2010-04-11 115 views
3

該任務是通過調用服務器的Web API獲取session_id來繞過遠程服務器上的登錄表單。這樣用戶不必登錄兩次。IE不會從iframe開始會話?

由於沒有辦法爲其他域設置Cookie。我們想到的是 - 在遠程服務器上放置一個小文件,我們從隱藏的iframe傳遞加密的session_id,並且該文件應該爲遠程應用程序啓動適當的會話,然後將其加載到另一個iframe中。

這種方法在FF/Chrome中可以正常工作,但不是IE ...但是,如果我將url複製到自制的遠程授權腳本,從iframe的src屬性到IE的地址欄,並從那裏加載它,session get按預期方式創建。但由於某種原因,它只是不想從一個iframe做同樣的事情。

有沒有人有任何線索,爲什麼會發生這種情況?

+0

爲什麼不直接建立一個到該服務的鏈接,而不是將其放入iframe中?您的方法看起來像網絡釣魚。 – 2010-04-11 08:27:27

+1

我們的客戶想要這樣。某種集成到另一個應用程序的後端。放置一個鏈接或按鈕,將打開遠程應用程序在單獨的窗口中,不被視爲他們的選項:(否則它會更簡單,當然,它是什麼樣的phishy呢?我們得到了一個有效的session_id,從驗證的web API呼叫。 – jayarjo 2010-04-11 08:41:15

回答

0

好的,我們爲IE做了什麼,我們只是將整個瀏覽器重定向到授權腳本,然後再將其重定向到授權腳本。不管怎樣,至少可以解決問題。

任何人有更好的解決方案?

1

我剛剛遇到同樣的問題,並通過將服務器的服務器上的時間設置爲包含iframe的服務器的時間來解決此問題。