1

我在不同的服务器上有两个应用程序。一个应用程序在 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 会话文件。=> 不确定授予会话文件权限是个好主意。

期待您的建议,根据您的经验,上述任何一点是否有意义或任何其他最适合的。

4

1 回答 1

2

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

通过一些工作,但不涉及重写使用会话的 php 代码,您可以将所有会话数据推送到数据库中。然后,只需从 C# 端为此编写一个接口即可。最困难的部分是解析序列化数据,但可以肯定的是,它类似于序列化()值的剖析

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

于 2013-04-08T14:05:31.477 回答