簡體   English   中英

在服務器之間維護會話?

[英]Maintain Session Across the servers?

我在不同的服務器上有兩個應用程序。 一個應用程序在LAMP環境中,另一個應用程序在帶有IIS7的ASP.Net 4.0中。 主要應用程序在PHP中,而ASP.Net應用程序只是PHP應用程序的一個模塊。

這兩個應用程序將共享同一個MySQL數據庫。

我需要在服務器之間共享會話。 有人做過嗎? 我對此沒有什么想法-

  1. 在MySQL數據庫中創建Seesion表,並讓PHP和ASP.Net在該表中進行讀/寫會話。 =>為此,需要更改PHP代碼。 客戶可能對此未達成一致。

  2. 由於PHP將會話存儲在文件中,因此請在PHP服務器上編寫Web服務,以便將會話詳細信息讀/寫到會話文件中。 ASP.Net應用程序可以使用此服務來讀取/寫入會話。服務將接受“ PHPSessionId”作為輸入參數。

  3. 直接訪問ASP.Net應用程序以讀取/寫入PHP服務器上的PHP會話文件。 =>不確定授予會話文件許可是一個好主意。

根據您的經驗,期待您提出建議,無論上述觀點是否有意義或其他最佳方案。

我建議研究session-set-save-handler()

通過一點點的工作,但是沒有任何涉及重寫使用會話的php代碼的事情,您可以將所有會話數據推送到數據庫中。 然后,只需從C#端為此編寫一個接口即可。 最困難的部分是解析序列化的數據,但是可以肯定的是,這類似於對serialize()值的剖析

請注意,這可以作為對單個中央php配置文件的更改,甚至可以通過使用php_value auto_prepend_file (例如php_value auto_prepend_file dbsessions.php以及在session中的會話保存處理程序代碼在dbsessions.php文件中來完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM