维护服务器的会话?

时间:2013-04-08 13:57:42

标签: c# php asp.net

我在不同的服务器上有两个应用程序。一个应用程序在LAMP环境中,另一个在带有IIS7的ASP.Net 4.0上。主要应用程序是PHP,而ASP.Net应用程序只是PHP应用程序的一个模块。

两个应用程序都将共享MySQL中的相同数据库。

我需要在服务器之间共享会话。有没有人这样做过?我对此几乎没有想法 -

  1. 在MySQL数据库中创建Seesion表,让PHP和ASP.Net读/写会话进入该表。 =>对于这个PHP代码需要更改。客户可能不会同意这一点。

  2. 由于PHP将会话存储在文件中,因此在PHP服务器上编写Web服务,该服务会将会话详细信息读/写到会话文件中。 ASP.Net应用程序可以使用此服务来读/写会话.Service将接受“PHPSessionId”作为输入参数。

  3. 直接访问ASP.Net应用程序以读取/写入PHP服务器上的PHP会话文件。 =>不确定是否允许会话文件是一个好主意。

  4. 根据您的经验,期待您的建议,无论上述任何一点是否有意义或任何其他最佳诉讼。

1 个答案:

答案 0 :(得分:2)

我建议您查看session-set-save-handler()

通过一些工作,但没有任何涉及重写使用会话的PHP代码,您可以将所有会话数据推送到数据库中。然后,从C#端编写一个接口只是一个简单的问题。最困难的部分是解析序列化数据,但相当确定它类似于Anatomy of a serialize()'ed value

请注意,这可以作为对单个中央php配置文件的更改,或者甚至通过使用php_value auto_prepend_file,例如php_value auto_prepend_file dbsessions.php和dbsessions.php中的会话保存处理程序代码来完成文件。