2009-06-08 66 views
2

我們有一個當前(遺留)基於PHP的網站,不太可能在明年左右重新開發,它充當我們的主要門戶網站。在PHP和ASP.Net之間傳遞會話或認證狀態

我們想在ASP.Net中開發新的應用程序,並將它們插入當前的門戶 - 但我們不希望我們的網站用戶必須登錄兩次。

什麼是在兩個平臺之間共享身份驗證狀態的最佳方式?他們不共享相同的服務器,數據庫後端甚至代理服務器。

回答

0

我想你最好的選擇是一個單獨的數據庫或內存支持的服務器來處理會話狀態。您可以使用ASP.NET內置的基於SQL Server的會話狀態,並手動添加它到PHP或使用自定義解決方案。

0

我需要這一段時間回來一個相當大的項目。語言是ASP.Net和ASP,但是我最終使用的方法同樣適用於PHP,而不是ASP。

你能抽象出你的PHP應用程序修改會話變量的地方嗎?

我發現即使對於大型Web應用程序,也只有少數幾個地方會話變量被更新。例如; 登錄,註銷,一些尋求更改組動作,等等。對於我來說,有少於6個腳本需要修改。

對於修改會話變量的每個腳本,請將服務器重定向添加到新的ASP.Net腳本中。因此,PHP腳本將做它所要做的一切,最後的事情將是一個PHP重定向(mabye PHP 標題(「位置:...」)調用結束

您接收ASP.Net腳本更新ASP.Net會話變量的方式與PHP腳本更新會話的方式相同。幸運的是,在我的情況下,原始腳本沒有輸出任何數據,而是重定向到「成功」頁面。

ie原始腳本是控制器代碼在MVC設計中,他們重定向到查看代碼。這使我可以在ASP控制器和視圖腳本之間整齊地插入我的ASP.Net腳本。如果您的接收腳本輸出數據,那麼您將不得不將它分成2頁。

就是這樣。實際上,爲Login,Logout和幾個頁面執行此操作有效地導致兩個會話範圍保持同步。