QA@IT

cookielessでセッションIDが変わる

4672 PV

asp.net mvc2でガラケー対応を作成しています。
web.configでcookieless="AutoDetect"を指定しています。

RedirectしたときにSessionIDが変わってしまし、
sessionに保持していたデータが消えてしまいます。

どのように対処すればよろしいでしょうか?

回答

解決いたしました。

どうやら Html.BeginForm で actionName と controllerName を指定していなかったのが原因のようです。

大変失礼いたしました。

編集 履歴 (0)

Cookie が利用できないガラケーに対応するため URL にセッション ID を埋め込んでいるが、リダイレクトすると埋め込んだセッション ID が消えてしまうということですか?

はい、その通りです。

httpRuntimeの設定で、useFullyQualifiedRedirectUrlをtrueにしてみるとどうなるでしょうか?

web.configでuseFullyQualifiedRedirectUrlがtrueになっておりました。

その後、いろいろと調査してみたのですが
どうやら、ローカル(asp.net開発サーバー)では問題なく動作し
レンタルサーバーのIISでは動作しない(セッションIDが変わってしまう)ようです。

IISの設定が何かしら異なると思うのですが
どの項目を調査すればよろしいのでしょうか?

なお、実機がないためi-mode HTML Simulator IIを使用して確認しております。

編集 履歴 (0)

httpRuntimeの設定で、useFullyQualifiedRedirectUrlをtrueにしてみるとどうなるでしょうか?

編集 履歴 (0)

Cookie が利用できないガラケーに対応するため URL にセッション ID を埋め込んでいるが、リダイレクトすると埋め込んだセッション ID が消えてしまうということですか?

そうであれば、HttpResponse.ApplyAppPathModifier メソッドを使ってセッション ID が埋め込まれた絶対 URL を取得し、Redirect メソッドでその URL を指定してはいかがですか?(未検証です)

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。