質問: ((ImageButton)sender).ID; switch (id) { case "IMG_BTN_DL": //DLボタン押下 //セッションに保存したユーザIDを次の画面でも利用したいがセッションIDが変わってしまうので取得できない Server.TransferRequest("DL.aspx"); break; case "IMG_BTN_LOG_OUT": //ログアウトボタン押下 logout();//★ここでDBからログイン情報を削除したいがログアウトボタンをクリックしたときにはセッションIDが変わってしまう break; default: break; } } } ``` ### 試したこと ログイン画面のログインボタンの処理を Server.TransferRequest("top.aspx")から Response.Redirect("top.aspx")に変更したが、セッションIDが変わってしまいます。 ControlBox.ascxにはユーザ名を表示するLBL_NAMEがありますが、 ログアウトボタンをクリックしたときには空文字になっています。 セッションがだめならhiddon項目にしたラベルからユーザIDを取得を試みましたができず・・・ 参考URL https://ameblo.jp/friskpanda/entry-11364901611.html http://hensa40.cutegirl.jp/archives/842 https://www.it-swarm.dev/ja/asp.net/aspnet%EF%BC%9A%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E9%96%93%E3%81%AEsessionsessionid%E3%81%AE%E5%A4%89%E6%9B%B4/969626190/ (基本的に、バックエンドでセッションオブジェクトにアクセスしない限り、リクエストごとに新しいsessionIdが生成されます、というのが気になりPage_Initを追加したが効果なし) 検索したワード ASP C# セッションID 維持 ASP C# セッションID 変わってしまう 【 補足情報】 OS:WindowsServer2012 Standard Microsoft Visual Studio Enterprise 2019 C# .net framework 4.5 ASP.net:4.5 Web Forms StateServer環境(同一PC) 非MVC環境 私自身は、今回ASPで画面を作るのは初めてです。 元々社内にあるシステムの追加で作ったページなのですが、 セッション管理のない独自仕様のフレームワークでそれならと新規作成しました。 工数的に後戻りできないので、今の作りでセッションを維持したいと考えています。 ほかに必要な情報がありましたら追加しますので、コメントにて教えてください。
回答: SurferOnWwwさん、丁寧に教えてくださりありがとうございました! ユーザIDを引き継ぐことができましたので解決方法を記載します。 1セッションクッキー確認用にログイン処理の画面遷移直前に以下のコードを入れました。 Response.Cookies"accessUser"]["userId"] = "UID0001"; 2ログアウトボタンのボタンイベントにブレークポイントを設定してから、 今回の課題となったトップ画面のログアウトボタンを押します。 3イミディエイトウインドウで、セッションクッキーの値を表示します。 Server.HtmlEncode(Request.Cookies["accessUser"]["userId"]); 4"UID0001"を表示できました。 Cromeデベロッパーツールの中のCookies情報も確認できました。 セッションクッキーを設定しないと、タブすら出ないようです。 ![イメージ説明 Global.asaxについてはファイルそのものがないので参考URLの手順で追加しました。 ``` void Session_Start(object sender, EventArgs e) { // 新規セッションを開始したときに実行するコードです if (null != Session) { }//ブレークポイントを張りいつ通るのか確認する } ``` でログアウトボタンを押しても通るのか確認したところ、ブレークされました。 ログアウトボタンを押すとPage_PreInitからボタンイベントへ順番に処理が流れるとのことで、 そのあたりで今回の質問していたセッションIDが変わる現象が起きたのかな、と推測しました。 上司も先輩も経験のない言語で相談相手も限られる中、なんとか目的を達成できる見込みがでました。 多重ログイン防止処理もチケット発行の仕組みを作れば何とかできそうです。 筆末になりますが、SurferOnWwwさんと参考URLの記事を書いて下さった方に感謝して質問を終了いたします。 大変ありがとうございました! 参考URL https://www.ipentec.com/document/csharp-aspnet-url-routing http://hensa40.cutegirl.jp/archives/1204