セッション変数が消えてしまいます。

解決


KEITA  2006-09-14 20:12:15  No: 96633

お世話になります。
VBもASPも初心者に近いので、説明不足もあるかと思いますが、
よろしくお願いいたします。

<概要>
VB6.0で、WebBrowserを利用してフォーム内にASP1を表示する作りにしました。
表示したASP1上でボタンを押すと別のASP2を新しいブラウザで表示する作りになっています。

<問題>
新しいブラウザでASP2を表示する際にASP1からのセッション変数が
引き継がれず、消えてしまいます。

OSの環境はWindowsXPです。
Web環境はIEです。

実際に初めのASP1を表示する箇所が下記です。
  Form1.WebBrowser1.Navigate2 "ASP1"
  Form1.Show
そして、"ASP1"からASP2を表示する時が下記です。
※ここはjavascriptを使用しています。
function Button_onClick(){
  newWin = window.open("ASP2", "newWin")
}

<やりたい事>
ASP1で使用しているセッション変数を
ASP2でも使用したいのです。

質問書いてて、VBの質問ではないような気がうすうすしますが
頼らせて下さい。よろしくお願いいたします。


Geo=TK3  2006-09-14 21:20:41  No: 96634

# VB というよりは ASP の話ですね。
ASP.NET は分からないので、以下の話は ASP 限定ですが。

もし ASP1 と ASP2 が別の Web アプリケーションなら、ASP1 のセッション変数を ASP2 で使用するのは無理です。
「ASP1.EXE で定義した変数を ASP2.EXE で使いたい」みたいなものですし。
その場合はブラウザから値を引き渡すようにするか、同一 Web アプリケーションに構成しなおす必要があります。

また同一 Web アプリケーションであるなら新しいウィンドウを作っている為に ASP 側が別セッションと認識してしまっていると思われます。
その場合はセッション変数ではなくアプリケーション変数を使うようにすればよいと思います。
もしくは別ウィンドウを開くのをやめて、同じウィンドウに ASP2 の内容を表示するかでしょうか。


KEITA  2006-09-14 22:38:19  No: 96635

Geo=TK3様、さっそくの回答ありがとうございます。

説明不足でした。.NETではないです。普通?のASPです。

別セッションという認識がされているのかな〜とは思っていたのですが、
どうもそのようですね。
セッションを識別するセッションIDみたいなのをパラメータで渡して
そのセッション内のセッション変数を扱うみたいな事って出来ないのかな〜
ともちょっと調べているのですが、セッションIDってのがあるって
ことしか分からず、その簡単な使用方法がちんぷんかんぷんです。
※セキュリティ関連ばかりがヒットします。

どなたか知っていたら教えて頂けないでしょうか。


Geo=TK3  2006-09-15 02:57:54  No: 96636

>別セッションという認識がされているのかな〜とは思っていたのですが、
>どうもそのようですね。

ASP1 に直接 ASP2 へのリンクを張って、そのリンク経由で ASP2 を参照した場合、ASP2 でセッション変数は参照出来ますか?
もし出来なければ別セッションどころか別 EXE という感じの話になりますが。

>セッションを識別するセッションIDみたいなのをパラメータで渡して
>そのセッション内のセッション変数を扱うみたいな事って出来ないのかな〜

出来ません。
複数セッションで値を共有するなら、アプリケーション変数を使うのがよいのではないでしょうか。


KEITA  2006-09-16 00:08:23  No: 96637

>出来ません。
色々調べて、出来るのかな?と思ったのですが、
出来ませんか。。。

>複数セッションで値を共有するなら、アプリケーション変数を使うのがよいのではないでしょうか。
ログインするユーザによって値が違うので、アプリケーション変数の使用は
避けたいと思っています。

セッション変数以外の、変数の渡し方を考えてみます。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加