この問題に遭遇した人にとって、これが役立つことを願っています。以下は、ダウンロードできる asp.net のソースコードです。
window.open は非常に不快なものですが、現在、多くのオフィス オートメーション システム (OA) で特定の用途に使用されることがあります。
ユーザーに操作の余地を与えるために、ユーザーがログインした後、window.open を使用してタイトルバーのみのウィンドウを開きます。
しかし、開いたウィンドウでは、ログインウィンドウで生成されたセッションが見つかりません。
1: asp.net での解決策:
1: ログインウィンドウがdefault.aspxの場合、バックグラウンドで次のように記述できます:
このようにして、新しく開いたウィンドウのindex.aspxにSessionIDを渡すことができ、このSessionIDをindex.aspxで使用することができます
セッションを再構築します。
2: Index.aspx では、次のようにセッションを再構築できます:
その中で、SessionState 名前空間の下の SessionIDManager クラスを使用し、その CreateSessionID をオーバーライドします
この仮想メソッドはセッションを再取得するために使用されます。仮想メソッド CreateSessionID を書き換える必要があり、新しい Session を返します
SessionID、この SessionID はログイン インターフェイスの default.aspx から渡されるため、新しく構築された
について考えることができます。セッションとログインウィンドウのセッションは1つのセッションです。
2: PHP での解決策:
1: PHP でこのセッション損失を解決するために同じ方法が使用されており、解決するには 2 つの関数のみが必要です。
session_id 関数は、ログインインターフェースの SessionID を取得する関数です。
2: 次に、.net と同じように、この SessionID に基づいてセッションを構築できます。
session_id($sid); session_start();
関数 Session_id はセッションを再構築するためのものです。