1

異なるサーバーに 2 つのアプリケーションがあります。1 つのアプリケーションは LAMP 環境上にあり、もう 1 つは IIS7 を使用した ASP.Net 4.0 上にあります。メイン アプリケーションは PHP ですが、ASP.Net アプリケーションは PHP アプリケーションの単なるモジュールです。

両方のアプリケーションは、MySQL にある同じデータベースを共有します。

サーバー間でセッションを共有する必要があります。誰もこれを以前にやったことがありますか?私はこれについてほとんど考えていません -

  1. MySQL データベースに Seesion テーブルを作成し、PHP と ASP.Net がこのテーブルにセッションを読み書きできるようにします。=> この場合、PHP コードを変更する必要があります。クライアントはこれに同意しない場合があります。

  2. PHPはセッションをファイルに保存するため、セッションの詳細をセッションファイルに読み書きするWebサービスをPHPサーバーに記述します。ASP.Net アプリケーションは、このサービスを使用してセッションの読み取り/書き込みを行うことができます。サービスは、入力パラメーターとして「PHPSessionId」を受け入れます。

  3. ASP.Net アプリケーションに直接アクセスして、PHP サーバー上にある PHP セッション ファイルを読み書きします。=>セッションファイルに許可を与えることが良いアイデアかどうかはわかりません。

上記の点が理にかなっているのか、それともあなたの経験に応じて他の最適な点があるのか​​ 、あなたのアドバイスを楽しみにしています.

4

1 に答える 1

2

session-set-save-handler()を調べることをお勧めします。

セッションを使用する PHP コードを書き直す必要はありませんが、少しの作業で、すべてのセッション データをデータベースにプッシュすることができます。次に、C# 側からそのためのインターフェイスを作成するだけです。最も難しい部分は、シリアライズされたデータの解析ですが、serialize() された値の解剖学のようなものであることはほぼ確実です。

これは、単一の中央 php 構成ファイルへの変更として、またはdbsessions.php ファイル内のセッション保存ハンドラー コードphp_value auto_prepend_fileなどを使用して行うことができることに注意してください。php_value auto_prepend_file dbsessions.php

于 2013-04-08T14:05:31.477 に答える