- PR -

[ASP.NET]ディレクトリが異なるページ移動におけるセッション情報の受渡について

1
投稿者投稿内容
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-06-14 10:09
ページ間移動におけるセッション情報の受渡について教えてください。

サンプルプログラムのディレクトリ構成
 SessionSample
  −Login:login.aspx
  −Gyomu01:menu.aspx
というディレクトリ構成となっています。

処理の流れとしては
 @login.aspxのボタンクリックイベントでセッション変数に入力内容を格納
  その後、Response.Redirect("../Gyomu01/menu.aspx")を実行
 Amenu.aspxのPage_Loadイベントでセッション変数より入力内容を取得
という流れを考えました。

これを実行すると、どうもmenu.aspxのPage_Loadイベントが実行されていないような感じがしました。理由は、セッション変数から値が取れなければその旨を画面に表示する処理を実装しているからです。

<menu.aspxのPage_Loadイベント>
 Private Sub Page_Load(・・・・) Handles MyBase.Load
  ' ページを初期化するユーザー コードをここに挿入します。
   If Not Session("id") Is Nothing Then
     lblID.Text = Session("id").ToString
   Else
     lblID.Text = "ログインID取得失敗!!"
   End If
   If Not Session("password") Is Nothing Then
     lblPasssword.Text = Session("password").ToString
   Else
     lblPasssword.Text = "パスワード取得失敗!!"
   End If
  End Sub

いろいろなサイトを見ながら試しているのですがうまく出来ません。
どうかご教授をお願い致します。
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-06-14 10:57
1点訂正があります。

>menu.aspxのPage_Loadイベントが実行されていないような感じがしました。
これは間違っていました。ちゃんと動いていました。
おそらくソリューションをビルドしていなかったのが原因だったかもしれないです。

どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-06-14 11:20
ディレクトリが分かれていても、1つのWebアプリケーションの中であればセッション情報の受け渡しは問題ないはずです。
ディレクトリ毎にそれぞれWebアプリケーションとして作成していませんか?
この場合はセッション情報の共有はできません。
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-06-14 13:15
どっとねっとふぁん様

>ディレクトリが分かれていても、1つのWebアプリケーションの中
>であればセッション情報の受け渡しは問題ないはずです。
>ディレクトリ毎にそれぞれWebアプリケーションとして作成していませんか?
>この場合はセッション情報の共有はできません。
確かにプロジェクトは分けています。
ということはWEBアプリケーションが分かれているということでしょうか?

となると、運用環境で1つのWEBアプリケーションとして配置するにはどのようにしたらよろしいのでしょうか?
いろいろな書籍やサイトを見ても運用環境構築までが解説されたものが見つからなくて・・・

ホントに素人で申し訳ありません。。。
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-06-14 14:04
試しに1つのソリューション内に2つのプロジェクトを実装してみたのですが、
セッションは引き継げませんでした・・・
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-06-14 14:31
> 試しに1つのソリューション内に2つのプロジェクトを実装してみたのですが、
> セッションは引き継げませんでした・・・

プロジェクトが2つである限り無理ですね。
http://support.microsoft.com/default.aspx?scid=kb;ja;JP307467
こちらが参考になるかな?
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-06-14 15:16
どっとねっとふぁん様

記載していただいたサイトの手順通りにサンプルを実装しましたら、
うまくできました。

ホントにありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-06-14 21:29
 フォーム認証をするなら、こちらの解説をまねるのが良いでしょう。
そうすると、ユーザ識別子は Page.Context.User(.Identity.Name) プロパティに入ります。
わざわざセッションに保存する必要はありません。
特に、パスワードを保管するのは、セキュリティ上、やめる方が得策です。
1

スキルアップ/キャリアアップ(JOB@IT)